• 首頁
  • 搜尋
  • AI服務
  • 模型
  • 文件寫作
  • 多媒體創作
  • 翻譯 / 其他
首頁›開發者中心›MYAI168 Chat API 使用說明

MYAI168 Chat API 使用說明

API 說明文件API 快速上手OpenAI ChatGPT APIAnthropic (Claude) APIGoogle Gemini APIGoogle Search APIGoogle News APIOpenRouter APIAPI 收費
CLI 與 Agent 教學cc-switch macOScc-switch Windowscc-switch LinuxOpenCode macOSOpenCode WindowsOpenCode LinuxOpenClaw macOSOpenClaw WindowsOpenClaw LinuxHermes Agent macOSHermes Agent WindowsHermes Agent LinuxClaude Code CLI macOSClaude Code CLI WindowsClaude Code CLI LinuxCodex CLI macOSCodex CLI WindowsCodex CLI Linux
MYAI168 API 與 MCPMYAI168 Chat API 使用說明MYAI168 MCP CLIMYAI168 MCP 網頁及應用程式
本頁沒有符合的問題。改用全站搜尋
快速開始與共通參數

MYAI168 Chat API 使用說明

本頁依用途整理本站對話端點的呼叫方式:文字對話、影像辨識、影像生成、語音辨識、語音生成、影片生成。各節的模組清單與 curl 範例依本站目前開通的模組即時產生,未開通的模組不會出現在本頁。

所有用途都呼叫同一個端點,只需更換 module 與對應的參數:

POST https://www.myai168.com/tw/ai/chat/chat

認證

使用開發者金鑰認證,放在 Authorization: Bearer YOUR_API_KEY 標頭(也接受 X-Dev-Key 標頭)。範例中的 YOUR_API_KEY 請換成你自己的金鑰。金鑰取得網址:https://www.myai168.com/tw/ai/user/developer

請求格式

以表單送出:純文字請求用 application/x-www-form-urlencoded(curl 的 --data-urlencode);需要上傳檔案時用 multipart/form-data(curl 的 -F,檔名前加 @)。curl 請加 -N,讓串流即時輸出。

本站單次請求(含全部上傳檔案)的總大小上限為 512 MB,超過時回 HTTP 413。

共通參數

參數型別必填說明
modulestring必填模組代號。default 代表本站預設模型;各用途可用的代號見下方各節。
inputstring視模組而定要送給模組的問題、指令或內容。文字對話與各種生成用途必填;語音辨識不需要。
upload_file[]file視模組而定上傳的檔案,可重複此欄位上傳多個檔案(multipart/form-data)。影像辨識與語音辨識必須帶檔案。
session_sninteger選填連續對話編號。第一次呼叫不帶;支援連續對話的模組會在串流中送出 data: {"session_sn": N},之後每次接續呼叫都帶回同一個值。
search_internetboolean選填設為 true 時,模型會先上網搜尋再回答(僅支援上網搜尋的模型有效;搜尋另外計費)。
effortstring選填推理強度(僅推理模型有效,可用值依模型而定;未帶時使用該模型預設值)。
displaystring選填設為 summarized 時,在回覆中附上思考過程摘要(僅支援的推理模型有效;預設 omitted 不顯示)。
param2/param3/param4string視模組而定模組專屬參數(例如語音辨識的語言、語音生成的聲音),意義依模組而定,見各節說明。

影像生成、影片生成等模組另有專屬欄位(例如 quality、aspect_ratio、resolution、duration),請見各節說明;模組用不到的欄位會被忽略。

本站可用模組代號

展開全部 116 個模組代號
模組代號名稱
search搜尋
default網站預設模型
agentAI Agent
gemini_4_argonGoogle Gemini 4 Argon
gemini_3_8_flashGoogle Gemini 3.8 Flash
gemini_3_8_live即時語音對話 gemini-3.8-live
gemini_3_8_live_extended_thinking即時語音對話 gemini-3.8-live-extended-thinking
gemini_3_6_flashGoogle Gemini 3.6 Flash
gemini_3_5_flash_liteGoogle Gemini 3.5 Flash 輕量版
gemini_3_1_proGoogle Gemini 3.1 專業版
gemini_3_1_flash_live即時語音對話 gemini-3.1-flash-live
gemini_3_1_flash_liteGoogle Gemini 3.1 Flash 輕量版
claude_fable_5_1Anthropic Claude Fable 5.1 頂級版
claude_fable_5Anthropic Claude Fable 5 頂級版
claude_opus_5_5Anthropic Claude Opus 5.5 旗艦版
claude_opus_5Anthropic Claude Opus 5 旗艦版
claude_opus_4_8Anthropic Claude Opus 4.8 旗艦版
claude_sonnet_5_5Anthropic Claude Sonnet 5.5 中階版
claude_sonnet_5Anthropic Claude Sonnet 5 中階版
claude_haiku_5_5Anthropic Claude Haiku 5.5 輕量版
claude_haiku_4_5Anthropic Claude Haiku 4.5 輕量版
gpt_6_astraOpenAI GPT-6 Astra 旗艦版
gpt_6_1_solOpenAI GPT-6.1 Sol 準旗艦版
gpt_6_solOpenAI GPT-6 Sol 程式代理版
gpt_6_lunaOpenAI GPT-6 Luna 高效版
openai_decisionsOpenAI Decisions 決策判定
gpt_5_6_solOpenAI GPT-5.6 Sol 旗艦版
gpt_5_6_terraOpenAI GPT-5.6 Terra 平衡版
gpt_5_6_lunaOpenAI GPT-5.6 Luna 輕量版
chatgpt_5_5OpenAI ChatGPT 5.5 旗艦版
chatgpt_5_4_miniOpenAI ChatGPT 5.4 輕量版
chatgpt_5_4_nanoOpenAI ChatGPT 5.4 極簡版
perplexity_sonar_deep_researchPerplexity Sonar 深度研究版
perplexity_sonar_reasoning_proPerplexity Sonar 推理專業版
perplexity_sonar_proPerplexity Sonar 專業版
grok_4_7xAI Grok 4.7
grok_4_6xAI Grok 4.6
grok_4_5xAI Grok 4.5
muse_spark_1.3Meta Muse Spark 1.3
kimi_k3月之暗面 Kimi K3
glm_5_2智譜 GLM 5.2
qwen3.5_397b_a17b阿里 Qwen 3.5 397B A17B 開源
knowledge_chunk知識區塊切割
meeting_minutes會議記錄整理
notes筆記整理
slide_outline投影片大綱
slide2投影片生成2
slide投影片生成
editorAI 小編 / 文案改寫
official_document公文寫作
chatpdfPDF文件對話(僅文字)
homework作業助手
social_media_content_improver社群貼文優化
contract合約審閱
report報告生成
webpage_summary網頁摘要
google_searchGoogle 搜尋
google_newsGoogle 新聞
paper論文寫作
speech_to_text語音辨識
gpt_transcribe語音辨識 gpt_transcribe
whisper_1語音辨識 whisper_1
gpt_4o_transcribe_diarize多語者語音辨識
programming程式設計助手
plan企劃案寫作
news_report新聞稿撰寫
news_oral_report新聞口語播報稿
ocr圖片光學字元辨識
document_ocr_to_md文件光學字元辨識轉Markdown
document_ocr_to_docx文件光學字元辨識轉docx
gai_article_detectorAI 生成文章偵測
summary_500文章摘要 (500 字)
summary_1000文章摘要 (1000 字)
writing_optimizer寫作優化
essay_grading作文評分
zenrows網路爬蟲
get_text文件文字擷取
gpt_image_2_5_flareGPT Image 2.5 Flare 圖像生成
gpt_image_2_5_sunburstGPT Image 2.5 Sunburst 圖像生成
gemini_nano_banana_2_1Google Nano Banana 2.1
nano_banana_proGoogle Nano Banana 專業版
nano_banana_3_1_flashGoogle Nano Banana 3.1 Flash 輕量版
image_to_prompt圖像反推提示詞
gemini_omni_flash_1_1Google Gemini Omni Flash 1.1 文生影片
music音樂生成
music_extend接續歌曲
music_cover歌曲風格重製
music_voice聲音複製唱歌
music_stems人聲伴奏分離
change_clothesAI 換衣服
seedream_5_0BytePlus Seedream 5.0 Pro 文生圖
seedance_2_5seedance 2.5 生成影片
seedance_2_0seedance 2.0 生成影片
cheer_video加油影片生成
christmas_video聖誕影片生成
rich_new_year_video新年發財影片生成
gemini_3_8_flash_ttsGoogle Gemini 3.8 Flash 文字轉語音
gemini_3_8_flash_lite_ttsGoogle Gemini 3.8 Flash-Lite 文字轉語音
gemini_2_5_flash_ttsGoogle Gemini 2.5 Flash 文字轉語音
gemini_2_5_pro_ttsGoogle Gemini 2.5 Pro 文字轉語音
text_to_speech_byteplusBytePlus seed-tts 文字轉語音
seedaudio_1_0BytePlus SeedAudio 1.0 音訊生成
voice_replicationBytePlus 聲音複製
translate_to_tc翻譯成正體中文
translate_to_english翻譯成英文
english_gramma英文文法檢查
speak_female多國語音女老師 Sophie
speak_male多國語音男老師 Alex
travel_translator旅行翻譯機
gemini_3.5_live_translate即時語音翻譯 gemini-3.5-live-translate
gpt_live_transcribe即時語音辨識 gpt_live_transcribe
sc2tc簡體轉正體
tc2sc正體轉簡體
simplified_chinese_detector簡體中文偵測
check_typo檢查錯字
health_education健康衛教

計費與錯誤

每次成功呼叫依模型計價自動扣點數,回覆末端會附上本次扣點摘要;發生任何錯誤或連線中斷一律不扣點。錯誤以 HTTP 200+串流內的文字訊息回覆(例如金鑰無效、點數不足、模組未開通),不是 HTTP 錯誤碼;單次請求超過大小上限時回 HTTP 413。

狀況串流內的訊息出現位置
金鑰缺漏或無效「請先登入」連結html 事件
金鑰已達使用點數限制API 金鑰已達使用點數限制!html 事件
本站未開放 API 呼叫本站未開放 API 呼叫。html 事件
點數不足請儲值!/點數不足,請儲值!html 事件
模型服務暫時異常,或請求內容被模型拒絕說明原因的文字訊息(服務異常時以 ERROR! 開頭並附 UTC 時間)文字片段

以上情況都不扣點。程式判斷建議:串流結束時若沒有收到任何回覆文字與產出檔案,就把 html 事件的內容當作失敗原因處理;訊息文字會依站台語系顯示,請不要用整句文字完全比對來判斷。

文字對話

一般問答、寫作、翻譯、程式等文字工作都走文字對話:module 帶文字模型代號、input 帶問題,回覆以串流逐段送出文字。

default 代表本站預設模型;要指定特定模型,請換成「快速開始與共通參數」一節「本站可用模組代號」清單中的任一代號。

基本對話

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=default" \
  --data-urlencode "input=你好,請自我介紹。"

先上網搜尋再回答

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=default" \
  --data-urlencode "search_internet=true" \
  --data-urlencode "input=請整理今天最重要的科技新聞。"

search_internet 僅對支援上網搜尋的模型有效;搜尋另外計費。

連續對話(session_sn)

第一次呼叫不帶 session_sn;從串流讀取 data: {"session_sn": N} 事件並保存該值,之後同一段對話的每次接續呼叫都帶回這個值。

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=default" \
  --data-urlencode "input=請推薦三本時間管理的書。"
curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=default" \
  --data-urlencode "session_sn=YOUR_SESSION_SN" \
  --data-urlencode "input=哪一本最適合初學者?"

請把 YOUR_SESSION_SN 換成第一次呼叫取得的值。

推理強度(effort)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=claude_opus_5_5" \
  --data-urlencode "effort=high" \
  --data-urlencode "input=請證明根號 2 是無理數。"

effort 設定推理模型的思考強度(常見值:low、medium、high;部分模型另接受 minimal、xhigh、max)。可用值依模型而定,未帶時使用該模型預設值。display 設為 summarized 時,支援的模型會在回覆中附上思考過程摘要。

決策判定(是否成立、分類選擇、等級評分)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=openai_decisions" \
  --data-urlencode "param2=choice" \
  --data-urlencode "param3=這則客訴應該由哪個部門處理?" \
  --data-urlencode "param4=billing|Payments, invoices and refunds
technical|Problems using the product
shipping|Delivery and tracking
other|Anything else" \
  --data-urlencode "input=我的訂單被重複收費了。"
curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=openai_decisions" \
  -F "param2=predicate" \
  -F "param3=這張照片中的商品有損壞嗎?" \
  -F "upload_file[]=@photo.jpg"

param2 是問題類型(predicate、choice、score),param3 是問題或判定條件,param4 一行一個列出選項(分類選擇)或等級(等級評分),格式為 value|description。回覆為表格,列出各選項的機率與信心度。用 upload_file[] 上傳圖片即可判定圖片;省略 param3 時以輸入文字當問題、以圖片當判定對象。

影像辨識

上傳圖片並以 input 提問,由支援影像的模型看圖回答(描述內容、辨識文字、分析圖表等)。圖片以 multipart/form-data 的 upload_file[] 欄位上傳。

看圖回答問題

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=default" \
  -F "input=這張圖片裡有什麼?請詳細描述。" \
  -F "upload_file[]=@photo.jpg"

重複 upload_file[] 欄位即可一次送出多張圖片。可接受的格式、張數與大小上限依模組而定。

辨識圖片中的文字(OCR)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=ocr" \
  -F "input=請擷取這張圖片中的所有文字。" \
  -F "upload_file[]=@scan.png"

C# 範例(ocr.cs)

using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string url = "https://www.myai168.com/tw/ai/chat/chat";
        string imagePath = "scan.png";

        using var http = new HttpClient { Timeout = TimeSpan.FromMinutes(10) };
        http.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue("Bearer", "YOUR_API_KEY");

        using var form = new MultipartFormDataContent();
        form.Add(new StringContent("ocr"), "module");
        form.Add(new StringContent("請擷取這張圖片中的所有文字。"), "input");
        form.Add(new ByteArrayContent(await File.ReadAllBytesAsync(imagePath)),
                 "upload_file[]", Path.GetFileName(imagePath));

        using var request = new HttpRequestMessage(HttpMethod.Post, url) { Content = form };
        using var response = await http.SendAsync(
            request, HttpCompletionOption.ResponseHeadersRead);
        response.EnsureSuccessStatusCode();

        var text = new StringBuilder();
        var notice = new StringBuilder();
        using var reader = new StreamReader(
            await response.Content.ReadAsStreamAsync(), Encoding.UTF8);
        string? line;
        while ((line = await reader.ReadLineAsync()) != null)
        {
            if (!line.StartsWith("data: "))
            {
                continue;
            }
            using var doc = JsonDocument.Parse(line.Substring(6));
            JsonElement root = doc.RootElement;
            if (root.TryGetProperty("html", out JsonElement html))
            {
                notice.AppendLine(html.GetString());
                continue;
            }
            if (!root.TryGetProperty("choices", out JsonElement choices)
                || choices.GetArrayLength() == 0)
            {
                continue;
            }
            JsonElement choice = choices[0];
            if (choice.TryGetProperty("delta", out JsonElement delta)
                && delta.TryGetProperty("content", out JsonElement content)
                && content.ValueKind == JsonValueKind.String)
            {
                text.Append(content.GetString());
            }
            if (choice.TryGetProperty("finish_reason", out JsonElement finish)
                && finish.ValueKind == JsonValueKind.String
                && finish.GetString() == "stop")
            {
                break;
            }
        }

        Console.OutputEncoding = Encoding.UTF8;
        Console.WriteLine(text.Length > 0 ? text.ToString() : notice.ToString());
    }
}

需要 .NET 6 以上。範例把 scan.png 以 MultipartFormDataContent 上傳,逐行讀取串流並把 choices[0].delta.content 的文字接起來;串流結束仍沒有任何文字時,html 事件的內容就是失敗原因。上傳的檔名請保留副檔名,圖片格式依副檔名判斷。

本站可辨識影像的模組

模組代號名稱備註
default網站預設模型本站預設模型。
gemini_4_argonGoogle Gemini 4 Argon—
gemini_3_8_flashGoogle Gemini 3.8 Flash—
gemini_3_6_flashGoogle Gemini 3.6 Flash—
gemini_3_5_flash_liteGoogle Gemini 3.5 Flash 輕量版—
gemini_3_1_proGoogle Gemini 3.1 專業版—
gemini_3_1_flash_liteGoogle Gemini 3.1 Flash 輕量版—
claude_fable_5_1Anthropic Claude Fable 5.1 頂級版—
claude_fable_5Anthropic Claude Fable 5 頂級版—
claude_opus_5_5Anthropic Claude Opus 5.5 旗艦版—
claude_opus_5Anthropic Claude Opus 5 旗艦版—
claude_opus_4_8Anthropic Claude Opus 4.8 旗艦版—
claude_sonnet_5_5Anthropic Claude Sonnet 5.5 中階版—
claude_sonnet_5Anthropic Claude Sonnet 5 中階版—
claude_haiku_5_5Anthropic Claude Haiku 5.5 輕量版—
claude_haiku_4_5Anthropic Claude Haiku 4.5 輕量版—
gpt_6_astraOpenAI GPT-6 Astra 旗艦版—
gpt_6_1_solOpenAI GPT-6.1 Sol 準旗艦版—
gpt_6_solOpenAI GPT-6 Sol 程式代理版—
gpt_6_lunaOpenAI GPT-6 Luna 高效版—
openai_decisionsOpenAI Decisions 決策判定—
gpt_5_6_solOpenAI GPT-5.6 Sol 旗艦版—
gpt_5_6_terraOpenAI GPT-5.6 Terra 平衡版—
gpt_5_6_lunaOpenAI GPT-5.6 Luna 輕量版—
chatgpt_5_5OpenAI ChatGPT 5.5 旗艦版—
chatgpt_5_4_miniOpenAI ChatGPT 5.4 輕量版—
chatgpt_5_4_nanoOpenAI ChatGPT 5.4 極簡版—
perplexity_sonar_deep_researchPerplexity Sonar 深度研究版—
perplexity_sonar_reasoning_proPerplexity Sonar 推理專業版—
perplexity_sonar_proPerplexity Sonar 專業版—
grok_4_7xAI Grok 4.7—
grok_4_6xAI Grok 4.6—
grok_4_5xAI Grok 4.5—
muse_spark_1.3Meta Muse Spark 1.3—
kimi_k3月之暗面 Kimi K3—
qwen3.5_397b_a17b阿里 Qwen 3.5 397B A17B 開源—
ocr圖片光學字元辨識必須上傳至少一張圖片檔案。
image_to_prompt圖像反推提示詞必須上傳至少一張圖片檔案。
影像生成

以 input 描述想要的畫面即可生成圖片;上傳參考圖可以修改圖片,帶回 session_sn 可以接續修改上一張。生成的圖片以下載連結回覆(見「解析回應與取得產出檔案」)。

文字生成圖片

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gpt_image_2_5_flare" \
  --data-urlencode "input=一隻坐在書桌上的貓,數位插畫"

上傳參考圖修改

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=gpt_image_2_5_flare" \
  -F "input=把背景換成夕陽下的海灘" \
  -F "upload_file[]=@photo.png"

接續修改上一張(session_sn)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gpt_image_2_5_flare" \
  --data-urlencode "session_sn=YOUR_SESSION_SN" \
  --data-urlencode "input=讓貓圍上一條紅色圍巾"

支援連續修改的影像模組會在第一次呼叫送出 data: {"session_sn": N};帶回該值且未上傳新圖片時,會以上一張結果作為修改的原圖。

指定圖片品質(quality)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gpt_image_2_5_flare" \
  --data-urlencode "quality=high" \
  --data-urlencode "input=黎明時分的燈塔水彩畫"

影像生成參數

參數必填描述
upload_file[]選填要修改的原圖或參考圖(multipart/form-data,可多個檔案)。下表標示必須上傳圖片的模組,沒有圖片無法執行。
session_sn選填接續修改上一次呼叫生成的圖片(僅支援連續修改的模組)。
quality選填gpt_image_2_5_flare、gpt_image_2_5_sunburst 的圖片品質:auto、low、medium、high、xhigh、max(預設 auto,由模型自動決定)。品質越高,產出量越大,所需點數也越多。

本站可生成影像的模組

模組代號名稱備註
gpt_image_2_5_flareGPT Image 2.5 Flare 圖像生成可上傳參考圖。 支援連續修改。
圖片輸出尺寸:由模型依提示自動決定,常見為 1024x1024、1024x1536 或 1536x1024,也可能是其他解析度(最長邊不超過 3840 像素)。
gpt_image_2_5_sunburstGPT Image 2.5 Sunburst 圖像生成可上傳參考圖。 支援連續修改。
圖片輸出尺寸:由模型依提示自動決定,常見為 1024x1024、1024x1536 或 1536x1024,也可能是其他解析度(最長邊不超過 3840 像素)。
gemini_nano_banana_2_1Google Nano Banana 2.1可上傳參考圖。 支援連續修改。
圖片輸出尺寸:1K(約 1024x1024)。
nano_banana_proGoogle Nano Banana 專業版可上傳參考圖。 支援連續修改。
圖片輸出尺寸:1K(約 1024x1024)。
nano_banana_3_1_flashGoogle Nano Banana 3.1 Flash 輕量版可上傳參考圖。 支援連續修改。
圖片輸出尺寸:1K(約 1024x1024)。
change_clothesAI 換衣服必須上傳至少一張圖片檔案。
圖片輸出尺寸:2K 解析度級距(1:1 時約 2048x2048,長寬比由模型依提示或參考圖決定)。
seedream_5_0BytePlus Seedream 5.0 Pro 文生圖可上傳參考圖。 支援連續修改。
圖片輸出尺寸:2K 解析度級距(1:1 時約 2048x2048,長寬比由模型依提示或參考圖決定)。
語音辨識

上傳音檔轉成文字,可指定語言,部分模組可輸出 SRT 字幕格式。

音檔轉文字

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=speech_to_text" \
  -F "param2=zh" \
  -F "upload_file[]=@speech.mp3"

不需要帶 input:語音辨識模組不使用輸入的文字。

輸出 SRT 字幕

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=speech_to_text" \
  -F "param2=zh" \
  -F "param3=on" \
  -F "upload_file[]=@speech.mp3"

提示人名與術語的寫法

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=speech_to_text" \
  -F "param2=zh" \
  -F "hint=林美玲,台積電,Kubernetes" \
  -F "upload_file[]=@speech.mp3"

語音辨識參數

參數必填描述
upload_file[]必填要辨識的音檔。可接受的格式與大小上限依模組而定。
param2選填音檔語言,填 ISO 639-1 兩碼語言代碼,例如 zh、en、ja、ko。未帶時以本站預設語言辨識;帶 zh 時,辨識結果以正體中文輸出。
param3選填設為 on 時以 SRT 字幕格式輸出(僅下表標示支援的模組;其他模組會回覆不支援 SRT,且不扣點)。
hint選填音檔中可能出現的人名與術語,以逗號分隔,例如 林美玲,台積電,Kubernetes,可提升專有名詞的辨識正確率。換行會被移除,最多使用前 200 個字;下表標示不支援的模組會忽略此參數,並在回覆中註明。

本站可辨識語音的模組

模組代號名稱SRT 字幕人名與術語提示
speech_to_text語音辨識支援支援
gpt_transcribe語音辨識 gpt_transcribe不支援支援
whisper_1語音辨識 whisper_1支援支援
gpt_4o_transcribe_diarize多語者語音辨識不支援不支援
語音生成

把 input 的文字轉成語音,以 param2 等參數選擇聲音與語言;產出為 MP3 音檔的下載連結。

文字轉語音(Google Gemini 3.8 Flash 文字轉語音)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gemini_3_8_flash_tts" \
  --data-urlencode "param2=Kore" \
  --data-urlencode "param3=cmn-CN" \
  --data-urlencode "param4=溫暖開朗" \
  --data-urlencode "input=歡迎光臨我們的網站,祝您有美好的一天。"
參數必填描述
input必填要念出的文字。
param2選填聲音名稱(不分大小寫;未帶時為 Kore),見下方聲音清單。
param3選填語言代碼(BCP-47,例如 cmn-CN、en-US、ja-JP)。未帶時自動偵測語言。
param4選填gemini_3_8_flash_tts、gemini_3_8_flash_lite_tts 的說話語氣,例如 溫暖開朗。也可以寫在 input 的第一行,格式為 語氣:溫暖開朗;該行不會被念出。

gemini_3_8_flash_tts、gemini_3_8_flash_lite_tts、gemini_2_5_flash_tts、gemini_2_5_pro_tts 使用相同的參數。

聲音名稱一覽(30 個)
值描述
Zephyr明亮
Puck活潑
Charon知性
Kore堅定
Fenrir興奮
Leda年輕
Orus堅定
Aoede輕快
Callirrhoe隨和
Autonoe明亮
Enceladus氣音
Iapetus清晰
Umbriel隨和
Algieba柔順
Despina柔順
Erinome清晰
Algenib沙啞
Rasalgethi知性
Laomedeia活潑
Achernar輕柔
Alnilam堅定
Schedar平穩
Gacrux溫暖
Pulcherrima直率
Achird友善
Zubenelgenubi隨性
Vindemiatrix溫和
Sadachbia生動
Sadaltager博學
Sulafat溫暖
語言代碼一覽(30 個)
值描述
de-DE德語(德國)
en-AU英語(澳洲)
en-GB英語(英國)
en-IN英語(印度)
en-US英語(美國)
es-US西班牙語(美國)
fr-FR法語(法國)
hi-IN印地文
pt-BR葡萄牙語(巴西)
ar-XA阿拉伯文
es-ES西班牙語(西班牙)
fr-CA法語(加拿大)
id-ID印尼語(印尼)
it-IT義大利語(義大利)
ja-JP日語(日本)
tr-TR土耳其語(土耳其)
vi-VN越南語(越南)
bn-IN孟加拉語(印度)
gu-IN古吉拉特語(印度)
kn-IN坎納達語(印度)
ml-IN馬拉雅拉姆語(印度)
mr-IN馬拉地語(印度)
ta-IN坦米爾語(印度)
te-IN泰盧固語(印度)
nl-NL荷蘭語(荷蘭)
ko-KR韓語(南韓)
cmn-CN中文
pl-PL波蘭語(波蘭)
ru-RU俄語(俄羅斯)
th-TH泰語(泰國)

文字轉語音(BytePlus seed-tts 文字轉語音)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=text_to_speech_byteplus" \
  --data-urlencode "param2=zh_female_wanwanxiaohe_moon_bigtts" \
  --data-urlencode "input=歡迎光臨我們的網站,祝您有美好的一天。"
參數必填描述
input必填要念出的文字。
param2必填聲音代號,見下方聲音清單。
聲音代號一覽(33 個)
值描述
zh_female_wanwanxiaohe_moon_bigtts伊莎貝拉 (Isabella) - 台灣甜美
zh_female_cancan_mars_bigtts燦燦 (Luna) - 通用明亮女聲
zh_male_baqiqingshu_mars_bigtts愛德華 (Edward) - 霸氣青叔
zh_female_wenroushunv_mars_bigtts艾瑪 (Emma) - 溫柔淑女
zh_female_shaoergushi_mars_bigtts蒂娜 (Tina) - 少兒故事
zh_male_silang_mars_bigtts威廉 (William) - 磁性司朗
zh_male_jieshuonansheng_mars_bigtts詹姆斯 (James) - 解說男聲
zh_female_jitangmeimei_mars_bigtts格蕾絲 (Grace) - 雞湯妹妹
zh_female_tiexinnvsheng_mars_bigtts索菲亞 (Sophia) - 貼心女聲
zh_female_qiaopinvsheng_mars_bigtts米婭 (Mia) - 俏皮女聲
zh_female_mengyatou_mars_bigtts艾娃 (Ava) - 萌丫頭
zh_female_qingxinnvsheng_mars_bigtts奧莉維亞 (Olivia) - 清新女聲
zh_female_linjia_mars_bigtts莉莉 (Lily) - 鄰家女孩
en_female_anna_mars_bigtts安娜 (Anna) - 美式溫柔
en_male_adam_mars_bigtts亞當 (Adam) - 美式清晰
en_female_sarah_mars_bigtts莎拉 (Sarah) - 澳洲女聲
en_male_dryw_mars_bigtts德魯 (Dryw) - 澳洲深沉
en_male_smith_mars_bigtts史密斯 (Smith) - 英式深沉
zh_male_guozhoudege_moon_bigtts安德魯 (Andrew) - 粵語男聲
zh_female_daimengchuanmei_moon_bigtts埃琳娜 (Elena) - 四川萌妹
zh_male_jingqiangkanye_moon_bigtts托馬斯 (Thomas) - 京腔侃爺
zh_female_wanqudashu_moon_bigtts羅伯特 (Robert) - 頑皮大叔
zh_female_gaolengyujie_moon_bigtts夏洛特 (Charlotte) - 高冷御姐
zh_male_wennuanahu_moon_bigtts馬克 (Mark) - 溫暖阿虎
zh_female_linjianvhai_moon_bigtts萊拉 (Lila) - 清新鄰家
zh_male_shaonianzixin_moon_bigtts伊森 (Ethan) - 自信少年
zh_male_yuanboxiaoshu_moon_bigtts約瑟夫 (Joseph) - 淵博小叔
zh_male_yangguangqingnian_moon_bigtts喬治 (George) - 陽光青年
zh_female_shuangkuaisisi_moon_bigtts艾莉亞 (Aria) - 爽快女聲
multi_female_shuangkuaisisi_moon_bigtts春子 (Haruko) - 日/西語活力女聲
multi_male_jingqiangkanye_moon_bigtts和音 (Kazune) - 日/西語男聲
multi_female_gaolengyujie_moon_bigtts明美 (Akemi) - 日語高冷女聲
multi_male_wanqudashu_moon_bigtts浩 (Hiroshi) - 日/西語大叔

以複製的聲音念出文字(BytePlus 聲音複製)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=voice_replication" \
  -F "input=歡迎光臨我們的網站,祝您有美好的一天。" \
  -F "upload_file[]=@voice_sample.mp3"

上傳一段要模仿的清晰人聲錄音(upload_file[]),並把要念出的文字放在 input。

以文字描述生成聲音(BytePlus SeedAudio 1.0 音訊生成)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=seedaudio_1_0" \
  --data-urlencode "input=細雨打在窗上,遠處傳來雷聲,寧靜的氛圍"

在 input 描述想要的音效、人聲或氛圍。可另附最多 3 段參考音檔(在文字中以 @Audio1、@Audio2… 引用)或 1 張參考圖片;音檔與圖片不可混用。

本站可生成語音的模組

模組代號名稱備註
gemini_3_8_flash_ttsGoogle Gemini 3.8 Flash 文字轉語音音訊輸出格式:MP3。
gemini_3_8_flash_lite_ttsGoogle Gemini 3.8 Flash-Lite 文字轉語音音訊輸出格式:MP3。
gemini_2_5_flash_ttsGoogle Gemini 2.5 Flash 文字轉語音音訊輸出格式:MP3。
gemini_2_5_pro_ttsGoogle Gemini 2.5 Pro 文字轉語音音訊輸出格式:MP3。
text_to_speech_byteplusBytePlus seed-tts 文字轉語音音訊輸出格式:MP3。
seedaudio_1_0BytePlus SeedAudio 1.0 音訊生成文字輸入上限:3,000 字元。
音訊輸出格式:MP3(最長 120 秒)。
voice_replicationBytePlus 聲音複製音訊輸出格式:MP3。
影片生成

以 input 描述畫面生成影片,可指定長寬比、解析度、長度,或上傳圖片作為首幀與參考素材;產出為 MP4 影片的下載連結。

文字生成影片(seedance 2.5 生成影片)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=seedance_2_5" \
  --data-urlencode "aspect_ratio=16:9" \
  --data-urlencode "resolution=1080p" \
  --data-urlencode "duration=10" \
  --data-urlencode "generate_audio=true" \
  --data-urlencode "input=一隻貓以慢動作跳過圍籬,電影感光線"

指定首幀與末幀

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=seedance_2_5" \
  -F "input=花朵緩緩綻放" \
  -F "first_frame=@start.jpg" \
  -F "last_frame=@end.jpg"
參數必填描述
aspect_ratio選填長寬比(預設 16:9)。
seedance_2_5: 16:9、9:16、1:1、4:3、3:4、21:9、adaptive
seedance_2_0: 16:9、9:16、1:1、4:3、3:4、21:9、9:21
resolution選填seedance_2_5 的解析度:720p、1080p(預設 720p)。
duration選填seedance_2_5 的影片長度(秒):4 至 30(預設 15)。
generate_audio選填true(預設)同時生成聲音;false 生成無聲影片。
first_frame選填作為第一格畫面的圖片檔。
last_frame選填作為最後一格畫面的圖片檔。
keyframes[]選填參考圖片(可多個檔案)。
upload_file[]選填參考圖片、影片或聲音(可多個檔案)。

首幀/末幀不可與參考素材(keyframes[] 或 upload_file[])在同一次呼叫中混用;混用時會在生成前被拒絕,且不扣點。

文字生成影片(Google Gemini Omni Flash 1.1 文生影片)

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gemini_omni_flash_1_1" \
  --data-urlencode "resolution=1080p" \
  --data-urlencode "aspect_ratio=9:16" \
  --data-urlencode "input=一隻貓以慢動作跳過圍籬,電影感光線"
參數必填描述
resolution選填gemini_omni_flash_1_1 的解析度:720p、1080p、4k(預設 720p)。
aspect_ratio選填gemini_omni_flash_1_1 的長寬比:16:9、9:16(預設 16:9)。
upload_file[]選填影片的參考圖片。
session_sn選填帶回上一次呼叫取得的值,即可修改上一支影片。

影片生成通常需要數分鐘。串流期間會持續送出進度訊息,請保持連線直到收到結束事件(連線中斷一律不扣點)。

本站可生成影片的模組

模組代號名稱備註
gemini_omni_flash_1_1Google Gemini Omni Flash 1.1 文生影片影片輸出:一部含音訊的 MP4 影片,解析度(預設 720P,可選 1080P/4K 放大)與長寬比(16:9 或 9:16)依面板選項,長度由模型決定(約 3~10 秒)。
seedance_2_5seedance 2.5 生成影片影片輸出:一部 4 到 30 秒(預設 15 秒)720P 或 1080P 的 MP4 影片,長度、解析度與長寬比依面板選項(含參考影片時由模型自動決定長寬比與長度,最長 30 秒)。
seedance_2_0seedance 2.0 生成影片影片輸出:一部 15 秒 720P MP4 影片,長寬比依面板選項。
GPTs 客製助手

呼叫你自己建立的、或本站公開的 GPTs 客製助手,走站台原生對話端點:送出 module=gpts,並以 param2 指定助手編號。編號就是該助手對話頁網址結尾的數字(https://www.myai168.com/tw/ai/gpts/gpts?sn=YOUR_GPT_SN)。

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gpts" \
  --data-urlencode "param2=YOUR_GPT_SN" \
  --data-urlencode "input=你好,請自我介紹。"

接續同一段對話——請把 YOUR_SESSION_SN 換成上一次回應串流回傳的 session_sn 值:

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=gpts" \
  --data-urlencode "param2=YOUR_GPT_SN" \
  --data-urlencode "session_sn=YOUR_SESSION_SN" \
  --data-urlencode "input=請繼續。"

助手的角色指令與綁定的知識庫會自動套用,不需要在 input 內重複描述。要接續同一段對話,把串流回傳的 session_sn 值帶回來。費用依本站預設模型計價;私有助手只有建立者本人的金鑰可以呼叫。

AI Agent

AI Agent 會把任務拆成多個步驟,逐輪使用工具(上網搜尋、抓取網頁、閱讀文件、撰寫文件、產生圖表與檔案)直到完成。送出 module=agent,並在 input 描述要完成的任務即可。每次開始新對話都會建立一本專屬的筆記本,上傳的檔案與產出檔案都存放在該筆記本。

執行任務

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=agent" \
  --data-urlencode "input=你好,請自我介紹。"

連續對話(session_sn)

第一次呼叫不帶 session_sn;任務一開始,串流就會送出 data: {"session_sn": N} 事件,請保存這個值,之後同一段對話的每一次呼叫都帶回同一個值(接續的呼叫不會再送出新的編號)。AI Agent 會延續前幾輪的內容,並沿用同一本筆記本,先前上傳與產出的檔案都還在,可以直接要求修改。

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=agent" \
  --data-urlencode "input=請調查電動機車市場,整理成一份簡短的 Word 報告。"
curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "module=agent" \
  --data-urlencode "session_sn=YOUR_SESSION_SN" \
  --data-urlencode "input=請把報告的結論改成條列式。"

請把 YOUR_SESSION_SN 換成第一次呼叫取得的值。

任務步驟較多時,AI Agent 可能在中途停下來詢問是否繼續;回覆「繼續」並帶同一個 session_sn,就會接著先前的進度完成。要開始不相關的新任務時不要帶 session_sn,系統會另建一本新的筆記本。

交付檔案

curl -N https://www.myai168.com/tw/ai/chat/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "module=agent" \
  -F "input=請閱讀這份文件,列出五個重點。" \
  -F "upload_file[]=@report.pdf"

上傳的檔案(upload_file[],可多個)會存進該次對話的筆記本,供 AI Agent 讀取與編輯。

AI Agent 參數

參數必填描述
module必填固定為 agent。
input必填要完成的任務;接續對話時則是追加的要求。
session_sn選填連續對話編號,接續同一段對話時帶回(見上方說明)。
chat_model選填執行任務的模型,可用值見下表;未帶或帶 default 時使用本站預設模型。
upload_file[]選填要交給 AI Agent 處理的檔案(multipart/form-data,可多個)。
notebook_sn選填在自己的指定筆記本裡執行,可使用該筆記本的來源、記事與檔案;編號即筆記本頁網址 notebook?sn= 後面的數字。必須是自己的筆記本,否則會回覆沒有權限並停止,不扣點。未帶時,新對話會另建一本新的筆記本,接續的對話則沿用最近一次使用的筆記本。
chat_log_ts選填搭配 notebook_sn 指定要接續該筆記本的哪一條對話串,串流中的 data: {"chat_log_ts": "..."} 事件即為本次使用的對話串。一般的連續對話只要帶 session_sn 即可。
chat_model 可用值(25 個)
值名稱
default站台預設
gemini_4_argonGemini 4 Argon
gemini_3_8_flashGemini 3.8 Flash
gemini_3_6_flashGemini 3.6 Flash
gemini_3_5_flash_liteGemini 3.5 Flash Lite
gemini_3_1_proGemini 3.1 Pro
gemini_3_1_flash_liteGemini 3.1 Flash Lite
claude_fable_5_1Claude Fable 5.1
claude_fable_5Claude Fable 5
claude_opus_5_5Claude Opus 5.5
claude_opus_5Claude Opus 5
claude_opus_4_8Claude Opus 4.8
claude_sonnet_5_5Claude Sonnet 5.5
claude_sonnet_5Claude Sonnet 5
claude_haiku_5_5Claude Haiku 5.5
claude_haiku_4_5Claude Haiku 4.5
gpt_6_1_solGPT-6.1 Sol
gpt_6_solGPT-6 Sol
gpt_6_lunaGPT-6 Luna
gpt_5_6_solGPT-5.6 Sol
gpt_5_6_terraGPT-5.6 Terra
gpt_5_6_lunaGPT-5.6 Luna
chatgpt_5_5ChatGPT 5.5
chatgpt_5_4_miniChatGPT 5.4 mini
chatgpt_5_4_nanoChatGPT 5.4 nano

讀取回覆內容

AI Agent 的回覆內容以 html 事件送出,並附上 md 鍵(同一段內容的 Markdown 原文),依序串接 md 的值即為完整回覆。html 事件中沒有 md 鍵者,是每一輪的執行過程(步驟與工具動作)及回覆末端的扣點摘要,可以略過。系統訊息(例如點數不足、詢問是否繼續)以文字片段 choices[0].delta.content 送出。

產出檔案的下載連結會出現在回覆內容中,網址形如 https://www.myai168.com/tw/api/file/download_nb?sn=...&fn=...。這些是呼叫帳號的私人檔案:請以同一帳號登入本站後用瀏覽器開啟,或到「AI Agent 筆記本」頁面開啟該次對話的筆記本下載。

Python 範例(同一段對話的兩次呼叫)

import json
import requests

url = "https://www.myai168.com/tw/ai/chat/chat"
headers = {"Authorization": "Bearer YOUR_API_KEY"}


def ask(text, session_sn=0):
    data = {"module": "agent", "input": text}
    if session_sn:
        data["session_sn"] = session_sn
    reply = []
    with requests.post(url, headers=headers, data=data, stream=True, timeout=(10, 1800)) as r:
        r.raise_for_status()
        r.encoding = "utf-8"
        for line in r.iter_lines(decode_unicode=True):
            if not line or not line.startswith("data: "):
                continue
            payload = json.loads(line[6:])
            if "session_sn" in payload:
                session_sn = payload["session_sn"]
            elif "md" in payload:
                reply.append(payload["md"])
            elif payload.get("choices"):
                choice = payload["choices"][0]
                content = (choice.get("delta") or {}).get("content")
                if content:
                    reply.append(content)
                if choice.get("finish_reason") == "stop":
                    break
    return "".join(reply), session_sn


answer, session_sn = ask("請調查電動機車市場,整理成一份簡短的 Word 報告。")
print(answer)
print("session_sn:", session_sn)

answer, session_sn = ask("請把報告的結論改成條列式。", session_sn)
print(answer)

需先安裝 pip install requests。ask() 回傳回覆內容與連續對話編號;第二次呼叫把編號帶回,即接續同一段對話。

注意事項

  • 帳戶點數需 10,000 點以上才能使用 AI Agent。一次任務會連續執行多輪思考與工具動作,可能使用大量點數,建議為金鑰設定使用點數限制。
  • 一次任務可能需要數分鐘以上,讀到 finish_reason 為 stop 才算完成,用戶端的讀取逾時請設長一點。連線中斷時任務會停止,已完成的輪次仍依用量扣點。
  • 同一本筆記本同一時間只能執行一個任務:請等上一次呼叫結束再送出下一次,否則會回覆「上一個任務還在進行中。」
  • session_sn 只對開始該段對話的帳號有效,請使用同一帳號的金鑰。AI Agent 的對話不會列在歷史紀錄頁,session_sn 請由程式自行保存。
解析回應與取得產出檔案

回應事件

回應為 SSE 串流(Content-Type: text/event-stream,內容為 UTF-8),每筆事件是一行 data: {JSON}:

事件說明
{"choices": [{"delta": {"content": "..."}}]}文字片段(相容 OpenAI 的 chat.completion.chunk 結構),依序串接即為完整回覆。
{"html": "..."}HTML 片段:圖片、影片、音檔的預覽與下載連結、提示訊息,以及回覆末端的扣點摘要。
{"session_sn": N}連續對話編號(支援的模組才會送出),下一次呼叫帶回即可接續。
{"user_request_html": "..."}上傳檔案後的回顯(HTML),程式可以忽略。
"finish_reason": "stop"串流結束(這一筆的 delta.content 為 null)。

遇到上表以外的鍵請直接略過——日後可能新增其他事件種類。

本次扣點摘要

成功的呼叫在串流結束前會送出一筆 html 事件,內容以 <span class="billing-summary"> 包住,寫明本次使用的點數、耗時與剩餘點數。文字依站台語系顯示,適合直接呈現給使用者;程式需要數值時,請呼叫 GET https://www.myai168.com/tw/api/user/get_credits 查詢餘額。

取得產出檔案

圖片、影片、音檔等產出會以本站的下載網址出現在 html 片段的 href/src 屬性中(網址形如 https://www.myai168.com/tw/api/file/download_photo?id=... 或 https://www.myai168.com/tw/api/file/download?id=...)。這些檔案是呼叫帳號的私人檔案:請以同一個帳號登入本站後,用瀏覽器開啟網址下載。

Python 範例

以下範例讀取串流,組出完整文字回覆,並收集連續對話編號、產出檔案網址與扣點摘要;串流結束時若沒有任何回覆文字與產出檔案,就把收到的提示訊息當作失敗原因(請先安裝套件:pip install requests):

import json
import re
import requests

url = "https://www.myai168.com/tw/ai/chat/chat"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"module": "default", "input": "你好,請自我介紹"}

text_parts = []
file_urls = []
notices = []
billing = ""
session_sn = 0

with requests.post(url, headers=headers, data=data, stream=True, timeout=(10, 900)) as r:
    r.raise_for_status()
    r.encoding = "utf-8"
    for line in r.iter_lines(decode_unicode=True):
        if not line or not line.startswith("data: "):
            continue
        payload = json.loads(line[6:])
        if "session_sn" in payload:
            session_sn = payload["session_sn"]
        elif "html" in payload:
            fragment = payload["html"]
            for u in re.findall(r'(?:href|src)="([^"]*/api/file/[^"]+)"', fragment):
                if u not in file_urls:
                    file_urls.append(u)
            plain = " ".join(re.sub(r"<[^>]+>", " ", fragment).split())
            if 'class="billing-summary"' in fragment:
                billing = plain
            elif plain:
                notices.append(plain)
        elif payload.get("choices"):
            choice = payload["choices"][0]
            content = (choice.get("delta") or {}).get("content")
            if content:
                text_parts.append(content)
            if choice.get("finish_reason") == "stop":
                break

answer = "".join(text_parts)
if not answer and not file_urls:
    raise RuntimeError("request failed: " + " / ".join(notices))
print(answer)
print("session_sn:", session_sn)
print("files:", file_urls)
print("billing:", billing)

r.encoding = "utf-8" 這一行不能省略:回應標頭沒有標示編碼,少了它 requests 會把中文解成亂碼。timeout=(10, 900) 是連線 10 秒、兩筆資料之間最長等待 900 秒。

需要上傳檔案時,把檔案放進 files 參數,欄位名稱為 upload_file[]:

files = [("upload_file[]", open("photo.jpg", "rb"))]
data = {"module": "default", "input": "這張圖片裡有什麼?"}
r = requests.post(url, headers=headers, data=data, files=files, stream=True, timeout=(10, 900))

Node.js 範例

使用 Node.js 18 以上內建的 fetch,不需安裝套件。存成 chat.mjs 後以 node chat.mjs 執行:

const url = "https://www.myai168.com/tw/ai/chat/chat";
const body = new URLSearchParams({ module: "default", input: "你好,請自我介紹" });

const res = await fetch(url, {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY" },
  body,
});
if (!res.ok) throw new Error("HTTP " + res.status);

let answer = "";
let sessionSn = 0;
const fileUrls = new Set();
const decoder = new TextDecoder();
let buffer = "";

for await (const chunk of res.body) {
  buffer += decoder.decode(chunk, { stream: true });
  const lines = buffer.split("\n");
  buffer = lines.pop();
  for (const line of lines) {
    if (!line.startsWith("data: ")) continue;
    const payload = JSON.parse(line.slice(6));
    if (payload.session_sn !== undefined) {
      sessionSn = payload.session_sn;
    } else if (payload.html !== undefined) {
      for (const m of payload.html.matchAll(/(?:href|src)="([^"]*\/api\/file\/[^"]+)"/g)) {
        fileUrls.add(m[1]);
      }
    } else if (payload.choices) {
      answer += payload.choices[0].delta?.content ?? "";
    }
  }
}

console.log(answer);
console.log("session_sn:", sessionSn);
console.log("files:", [...fileUrls]);

上傳檔案時改用 FormData(不要自行設定 Content-Type,fetch 會自動帶上分隔字串),回應的讀取方式與上面相同:

import { readFile } from "node:fs/promises";

const form = new FormData();
form.append("module", "default");
form.append("input", "這張圖片裡有什麼?");
form.append("upload_file[]", new Blob([await readFile("photo.jpg")]), "photo.jpg");

const res = await fetch("https://www.myai168.com/tw/ai/chat/chat", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY" },
  body: form,
});

實務建議

  • 讀到 finish_reason 為 stop 才算完成。中途斷線的呼叫不扣點,可以直接重送。
  • 等待時間依用途差異很大:文字通常數秒到數十秒,影像與語音生成可能超過一分鐘,影片生成可能需要數分鐘。用戶端的讀取逾時請設得夠長。
  • 每一段對話各自保存自己的 session_sn;要開始新話題時不要帶它。
  • 金鑰只放在伺服器端程式,不要寫進網頁或手機 App;建議為每把金鑰設定使用點數限制。
‹ 上一頁:Codex CLI Linux下一頁:MYAI168 MCP CLI ›
↑
已複製此問題的連結

其他常見問題頁面

API 說明文件

  • API 快速上手
  • OpenAI ChatGPT API
  • Anthropic (Claude) API
  • Google Gemini API
  • Google Search API
  • Google News API
  • OpenRouter API
  • API 收費

CLI 與 Agent 教學

  • cc-switch macOS
  • cc-switch Windows
  • cc-switch Linux
  • OpenCode macOS
  • OpenCode Windows
  • OpenCode Linux
  • OpenClaw macOS
  • OpenClaw Windows
  • OpenClaw Linux
  • Hermes Agent macOS
  • Hermes Agent Windows
  • Hermes Agent Linux
  • Claude Code CLI macOS
  • Claude Code CLI Windows
  • Claude Code CLI Linux
  • Codex CLI macOS
  • Codex CLI Windows
  • Codex CLI Linux

MYAI168 API 與 MCP

  • MYAI168 MCP CLI
  • MYAI168 MCP 網頁及應用程式