戰(zhàn):基于 KIMI 長(zhǎng)文本大模型的 OpenAI 兼容逆向 API 服務(wù))
AI 應(yīng)用后端【免費(fèi)下載鏈接】kimi-free-api KIMI AI 長(zhǎng)文本大模型逆向API【特長(zhǎng)長(zhǎng)文本解讀整理】支持高速流式輸出、智能體對(duì)話(huà)、聯(lián)網(wǎng)搜索、探索版、K1思考模型、長(zhǎng)文檔解讀、圖像解析、多輪對(duì)話(huà)零配置部署多路token支持自動(dòng)清理會(huì)話(huà)痕跡僅供測(cè)試如需商用請(qǐng)前往官方開(kāi)放平臺(tái)。項(xiàng)目地址https://gitcode.com/GitHub_Trending/ki/kimi-free-api點(diǎn)擊查看免費(fèi)下載本篇技術(shù)指南以 README.md 為主線(xiàn)系統(tǒng)講解 kimi-free-api 的接入準(zhǔn)備、多平臺(tái)部署、OpenAI 兼容接口的完整調(diào)用方式對(duì)話(huà)補(bǔ)全、文檔解讀、圖像解析、Token 存活檢測(cè)并結(jié)合倉(cāng)庫(kù)源碼深入剖析其 access_token 刷新、會(huì)話(huà)生命周期、多輪對(duì)話(huà)合并、文件上傳與流式輸出等底層實(shí)現(xiàn)。讀完本文你將能夠獨(dú)立完成 kimi-free-api 的部署并基于/v1/chat/completions接口將 KIMI 長(zhǎng)文本能力接入任意 OpenAI 兼容客戶(hù)端。項(xiàng)目概覽能做什么、邊界在哪里kimi-free-api 是一個(gè)基于 KIMI月之暗面 Moonshot AI網(wǎng)頁(yè)端接口實(shí)現(xiàn)的逆向 API 服務(wù)將 KIMI 的長(zhǎng)文本解讀與整理能力包裝為標(biāo)準(zhǔn)的 OpenAI 兼容接口。根據(jù) README.md 的說(shuō)明它支持以下核心能力高速流式輸出兼容 SSE 流式響應(yīng)逐字返回生成內(nèi)容多輪對(duì)話(huà)基于消息合并實(shí)現(xiàn)多輪上下文同時(shí)支持通過(guò)conversation_id接續(xù)原生會(huì)話(huà)聯(lián)網(wǎng)搜索kimi-search模型可實(shí)時(shí)檢索網(wǎng)頁(yè)智能體對(duì)話(huà)支持以智能體 ID 作為 model 調(diào)用官方智能體探索版research、K1 思考模型、數(shù)學(xué)模型長(zhǎng)文檔解讀支持可訪(fǎng)問(wèn)文件 URL 或 BASE64 數(shù)據(jù)上傳解析圖像解析OCR兼容 gpt-4-vision-preview 格式零配置部署、多路 Token 支持、自動(dòng)清理會(huì)話(huà)痕跡與 ChatGPT 接口完全兼容可直接對(duì)接 dify 等線(xiàn)上服務(wù)及各類(lèi) OpenAI 兼容客戶(hù)端。需要特別強(qiáng)調(diào)的是README 中的免責(zé)聲明同樣適用于本文介紹的一切用法逆向 API 是不穩(wěn)定的官方推薦前往 MoonshotAI 開(kāi)放平臺(tái)付費(fèi)使用以避免封禁風(fēng)險(xiǎn)項(xiàng)目為純粹研究交流學(xué)習(xí)性質(zhì)不接受任何資金捐助和交易僅限自用禁止對(duì)外提供服務(wù)或商用避免對(duì)官方造成服務(wù)壓力否則風(fēng)險(xiǎn)自擔(dān)。從倉(cāng)庫(kù)看本項(xiàng)目基于 TypeScript Koa 構(gòu)建見(jiàn) package.json依賴(lài) koa、axios、eventsource-parser、koa-router 等通過(guò) tsup 編譯打包入口為 src/index.ts路由統(tǒng)一注冊(cè)于 src/api/routes/index.ts其中/ping提供存活探活/v1/models返回 OpenAI 兼容的模型列表核心對(duì)話(huà)邏輯集中在 src/api/controllers/chat.ts。效果示例驗(yàn)證可用性與真實(shí)響應(yīng)README 提供了多組真實(shí)運(yùn)行截圖用于「驗(yàn)明正身」與功能演示。其中驗(yàn)明正身 Demo 展示了服務(wù)端正確返回 Kimi 自我介紹、模型名與 usage 信息其余示例還包括多輪對(duì)話(huà) Demodoc/example-6.png、聯(lián)網(wǎng)搜索 Demodoc/example-2.png、使用翻譯通智能體的智能體對(duì)話(huà) Demodoc/example-7.png、長(zhǎng)文檔解讀 Demodoc/example-5.png以及圖像 OCR Demodoc/example-3.png。這些截圖對(duì)應(yīng)的請(qǐng)求與響應(yīng)格式將在下文「接口列表與調(diào)用實(shí)戰(zhàn)」一節(jié)中給出完整可復(fù)現(xiàn)的 JSON 示例。接入準(zhǔn)備獲取 refresh_token 與多賬號(hào)配置訪(fǎng)問(wèn) kimi.moonshot.cn隨便發(fā)起一個(gè)對(duì)話(huà)按 F12 打開(kāi)開(kāi)發(fā)者工具在 Application Local Storage 中找到refresh_token的值。該值將作為請(qǐng)求頭Authorization: Bearer TOKEN的 Bearer Token 使用Authorization: Bearer TOKEN如果你看到的refresh_token是一個(gè)數(shù)組請(qǐng)使用.拼接后再使用見(jiàn) README 配圖 doc/example-8.jpg。多賬號(hào)接入突破頻率限制README 指出Kimi 限制普通賬號(hào)每 3 小時(shí)內(nèi)只能進(jìn)行 30 輪長(zhǎng)文本問(wèn)答短文本不限。kimi-free-api 支持一次提供多個(gè)賬號(hào)的 refresh_token使用英文逗號(hào),拼接Authorization: Bearer TOKEN1,TOKEN2,TOKEN3每次請(qǐng)求服務(wù)會(huì)從中隨機(jī)挑選一個(gè) Token 使用。在源碼中這一邏輯由tokenSplit與 lodash 的_.sample實(shí)現(xiàn)見(jiàn) src/api/routes/chat.tstokenSplit將Bearer前綴剝離并按逗號(hào)切分 Token 列表隨后隨機(jī)抽取一個(gè)用于本次請(qǐng)求從而實(shí)現(xiàn)多賬號(hào)負(fù)載分?jǐn)?。部署方案Docker / Compose / 云平臺(tái) / 原生四選一README 提供了五種部署方式任選其一即可。所有方式均要求設(shè)備或服務(wù)器能夠訪(fǎng)問(wèn)網(wǎng)絡(luò)并開(kāi)放8000 端口。Docker 部署拉取鏡像并啟動(dòng)服務(wù)設(shè)置時(shí)區(qū)為上海docker run -it -d --init --name kimi-free-api -p 8000:8000 -e TZAsia/Shanghai vinlic/kimi-free-api:latest日常運(yùn)維命令# 查看服務(wù)實(shí)時(shí)日志 docker logs -f kimi-free-api # 重啟服務(wù) docker restart kimi-free-api # 停止服務(wù) docker stop kimi-free-api倉(cāng)庫(kù)內(nèi)的 Dockerfile 采用兩階段構(gòu)建第一階段在 node:lts 中執(zhí)行yarn install與yarn run build編譯產(chǎn)出 dist第二階段使用 node:lts-alpine 精簡(jiǎn)鏡像僅拷貝 public、configs、package.json、dist 與 node_modules暴露 8000 端口并以npm start啟動(dòng)。Docker-compose 部署version: 3 services: kimi-free-api: container_name: kimi-free-api image: vinlic/kimi-free-api:latest restart: always ports: - 8000:8000 environment: - TZAsia/ShanghaiRender 部署按 README 步驟操作fork 本項(xiàng)目到你的 GitHub 賬號(hào)下訪(fǎng)問(wèn) Render 并登錄 GitHub 賬號(hào)構(gòu)建 Web ServiceNew - Build and deploy from a Git repository - Connect 你 fork 的項(xiàng)目 - 選擇部署區(qū)域 - 選擇實(shí)例類(lèi)型為 Free - Create Web Service等待構(gòu)建完成后復(fù)制分配的域名并拼接 URL 訪(fǎng)問(wèn)即可。注意事項(xiàng)部分部署區(qū)域可能無(wú)法連接 Kimi若容器日志出現(xiàn)請(qǐng)求超時(shí)或無(wú)法連接新加坡實(shí)測(cè)不可用請(qǐng)切換其他區(qū)域部署免費(fèi)賬戶(hù)的容器實(shí)例在一段時(shí)間不活動(dòng)時(shí)會(huì)自動(dòng)停止導(dǎo)致下次請(qǐng)求遇到 50 秒或更長(zhǎng)的延遲建議參考 free-api-hub 中的容器?;罘桨?。Vercel 部署注意Vercel 免費(fèi)賬戶(hù)的請(qǐng)求響應(yīng)超時(shí)時(shí)間為 10 秒而接口響應(yīng)通常較久可能遇到 Vercel 返回的 504 超時(shí)錯(cuò)誤。請(qǐng)先確保本地安裝了 Node.js 環(huán)境然后依次執(zhí)行npm i -g vercel --registry http://registry.npmmirror.com vercel login git clone https://github.com/LLM-Red-Team/kimi-free-api cd kimi-free-api vercel --prod倉(cāng)庫(kù)根目錄的 vercel.json 即為平臺(tái)部署的適配配置文件。Zeabur 部署注意免費(fèi)賬戶(hù)的容器實(shí)例可能無(wú)法穩(wěn)定運(yùn)行。可通過(guò) Zeabur 模板一鍵部署官方模板頁(yè)提供 Deploy on Zeabur 按鈕。原生部署Node.js PM2請(qǐng)準(zhǔn)備一臺(tái)具有公網(wǎng) IP 的服務(wù)器并開(kāi)放 8000 端口先安裝好 Node.js 環(huán)境并確認(rèn)node命令可用# 安裝依賴(lài) npm i # 安裝 PM2 進(jìn)行進(jìn)程守護(hù) npm i -g pm2 # 編譯構(gòu)建看到 dist 目錄即構(gòu)建完成 npm run build # 啟動(dòng)服務(wù) pm2 start dist/index.js --name kimi-free-api日常運(yùn)維命令# 查看服務(wù)實(shí)時(shí)日志 pm2 logs kimi-free-api # 重啟服務(wù) pm2 reload kimi-free-api # 停止服務(wù) pm2 stop kimi-free-api與 package.json 中的腳本對(duì)應(yīng)npm run build即tsup src/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public產(chǎn)出dist/index.jsCJS與dist/index.mjsESM兩個(gè)入口npm start使用node --enable-source-maps --no-node-snapshot dist/index.js啟動(dòng)。服務(wù)配置端口與時(shí)區(qū)默認(rèn)端口 8000 由 configs/dev/service.yml 定義# 服務(wù)名稱(chēng) name: kimi-free-api # 服務(wù)綁定主機(jī)地址 host: 0.0.0.0 # 服務(wù)綁定端口 port: 8000系統(tǒng)級(jí)配置請(qǐng)求日志、日志目錄、公共目錄、臨時(shí)文件有效期等見(jiàn) configs/dev/system.yml對(duì)應(yīng)默認(rèn)值由 src/lib/configs/system-config.ts 中的構(gòu)造函數(shù)兜底如requestLog默認(rèn) false、logWriteInterval默認(rèn) 200ms、tmpFileExpires默認(rèn) 86400000ms。服務(wù)配置加載邏輯見(jiàn) src/lib/configs/service-config.ts讀取 YAML 后與環(huán)境變量合并name/host/port均可通過(guò)環(huán)境變量覆蓋。推薦使用客戶(hù)端README 推薦使用以下二次開(kāi)發(fā)客戶(hù)端接入 free-api 系列項(xiàng)目它們更快更簡(jiǎn)單且支持文檔/圖像上傳由 Clivia 二次開(kāi)發(fā)的 LobeChat 分支由 時(shí)光 二次開(kāi)發(fā)的 ChatGPT Webchatgpt-web-sea分支。此外由于接口與 OpenAI 兼容也可以直接使用任何 OpenAI 兼容客戶(hù)端或通過(guò) dify 等線(xiàn)上服務(wù)編排接入。接口列表與調(diào)用實(shí)戰(zhàn)目前服務(wù)支持與 OpenAI 兼容的/v1/chat/completions接口請(qǐng)求與響應(yīng)格式與 OpenAI 官方文檔保持一致。所有接口均需在 header 中設(shè)置Authorization: Bearer [refresh_token]對(duì)話(huà)補(bǔ)全POST /v1/chat/completions請(qǐng)求數(shù)據(jù)README 原文含注釋說(shuō)明{ // 模型名稱(chēng) // kimi默認(rèn)模型 // kimi-search聯(lián)網(wǎng)檢索模型 // kimi-research探索版模型 // kimi-k1K1模型 // kimi-math數(shù)學(xué)模型 // kimi-silent不輸出檢索過(guò)程模型 // search/research/k1/math/silent可自由組合使用 // 如果使用kimi智能體model請(qǐng)?zhí)顚?xiě)智能體ID就是瀏覽器地址欄上尾部的一串英文數(shù)字20個(gè)字符的ID model: kimi, // 目前多輪對(duì)話(huà)基于消息合并實(shí)現(xiàn)某些場(chǎng)景可能導(dǎo)致能力下降且受單輪最大Token數(shù)限制 // 如果您想獲得原生的多輪對(duì)話(huà)體驗(yàn)可以傳入首輪消息獲得的id來(lái)接續(xù)上下文注意如果使用這個(gè)首輪必須傳none否則第二輪會(huì)空響應(yīng) // conversation_id: cnndivilnl96vah411dg, messages: [ { role: user, content: 測(cè)試 } ], // 是否開(kāi)啟聯(lián)網(wǎng)搜索默認(rèn)false use_search: true, // 如果使用SSE流請(qǐng)?jiān)O(shè)置為true默認(rèn)false stream: false }響應(yīng)數(shù)據(jù){ // 如果想獲得原生多輪對(duì)話(huà)體驗(yàn)此id你可以傳入到下一輪對(duì)話(huà)的conversation_id來(lái)接續(xù)上下文 id: cnndivilnl96vah411dg, model: kimi, object: chat.completion, choices: [ { index: 0, message: { role: assistant, content: 你好我是Kimi由月之暗面科技有限公司開(kāi)發(fā)的人工智能助手。我擅長(zhǎng)中英文對(duì)話(huà)可以幫助你獲取信息、解答疑問(wèn)還能閱讀和理解你提供的文件和網(wǎng)頁(yè)內(nèi)容。如果你有任何問(wèn)題或需要幫助隨時(shí)告訴我 }, finish_reason: stop } ], usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, created: 1710152062 }模型組合規(guī)則README 說(shuō)明search/research/k1/math/silent這些后綴可以自由組合例如使用kimi-search時(shí)開(kāi)啟聯(lián)網(wǎng)檢索。在源碼 src/api/controllers/chat.ts 中請(qǐng)求體里的use_search若為 true 會(huì)被路由層強(qiáng)制改寫(xiě)為kimi-search模型見(jiàn) src/api/routes/chat.ts而模型名稱(chēng)則通過(guò)indexOf判斷是否包含math、search、research、k1等關(guān)鍵字來(lái)分別控制use_math、use_research、use_search標(biāo)志位K1 模型內(nèi)部會(huì)映射為固定的 kimiplus_idcrm40ee9e5jvhsn7ptcg若 model 是 20 位英文數(shù)字混合的智能體 ID 則直接作為 kimiplus_id 使用。流式輸出當(dāng)stream: true時(shí)服務(wù)通過(guò) src/api/controllers/chat.ts 中的createTransStream將 Kimi 網(wǎng)頁(yè)端的 SSE 事件cmpl/req/length/search_plus/all_done/error等轉(zhuǎn)換為 OpenAI 格式的chat.completion.chunk數(shù)據(jù)塊并以data: [DONE]結(jié)尾響應(yīng) Content-Type 為text/event-stream。聯(lián)網(wǎng)搜索時(shí)搜索過(guò)程會(huì)以【檢索 N】 標(biāo)題的形式作為增量?jī)?nèi)容輸出若使用kimi-silent模型則靜默檢索不輸出檢索過(guò)程。文檔解讀提供一個(gè)可訪(fǎng)問(wèn)的文件 URL 或者 BASE64 數(shù)據(jù)進(jìn)行解析。POST /v1/chat/completions請(qǐng)求數(shù)據(jù){ // 模型名稱(chēng) // kimi默認(rèn)模型 // kimi-search聯(lián)網(wǎng)檢索模型 // kimi-research探索版模型 // kimi-k1K1模型 // kimi-math數(shù)學(xué)模型 // kimi-silent不輸出檢索過(guò)程模型 // search/research/k1/math/silent可自由組合使用 // 如果使用kimi智能體model請(qǐng)?zhí)顚?xiě)智能體ID就是瀏覽器地址欄上尾部的一串英文數(shù)字20個(gè)字符的ID model: kimi, messages: [ { role: user, content: [ { type: file, file_url: { url: https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf } }, { type: text, text: 文檔里說(shuō)了什么 } ] } ], // 建議關(guān)閉聯(lián)網(wǎng)搜索防止干擾解讀結(jié)果 use_search: false }響應(yīng)數(shù)據(jù)摘要節(jié)選{ id: cnmuo7mcp7f9hjcmihn0, model: kimi, object: chat.completion, choices: [ { index: 0, message: { role: assistant, content: 文檔中包含了幾個(gè)古代魔法咒語(yǔ)的例子這些咒語(yǔ)來(lái)自古希臘和羅馬時(shí)期的魔法文本被稱(chēng)為PGMPapyri Graecae Magicae。以下是文檔中提到的幾個(gè)咒語(yǔ)的內(nèi)容…… }, finish_reason: stop } ], usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, created: 100920 }底層實(shí)現(xiàn)當(dāng)消息 content 中出現(xiàn)type: file時(shí)extractRefFileUrls會(huì)提取其中的file_url.url隨后uploadFile依次完成預(yù)檢查 URL 可用性checkFileUrlHEAD 請(qǐng)求校驗(yàn)狀態(tài)碼與 100MB 大小上限、通過(guò)/api/pre-sign-url獲取預(yù)簽名上傳地址、將文件 PUT 上傳到目標(biāo)對(duì)象存儲(chǔ)、輪詢(xún)/api/file獲取文件 ID 并等待解析完成parse_process最終得到refs文件 ID 列表隨對(duì)話(huà)請(qǐng)求一起提交給 Kimi。BASE64 數(shù)據(jù)data:協(xié)議開(kāi)頭會(huì)被識(shí)別后解碼為 Buffer 再走同一流程。圖像解析OCR提供一個(gè)可訪(fǎng)問(wèn)的圖像 URL 或者 BASE64 數(shù)據(jù)進(jìn)行解析。此格式兼容 gpt-4-vision-preview API 格式你也可以用這個(gè)格式傳送文檔進(jìn)行解析。POST /v1/chat/completions請(qǐng)求數(shù)據(jù){ // 模型名稱(chēng) // kimi默認(rèn)模型 // kimi-search聯(lián)網(wǎng)檢索模型 // kimi-research探索版模型 // kimi-k1K1模型 // kimi-math數(shù)學(xué)模型 // kimi-silent不輸出檢索過(guò)程模型 // search/research/k1/math/silent可自由組合使用 // 如果使用kimi智能體model請(qǐng)?zhí)顚?xiě)智能體ID就是瀏覽器地址欄上尾部的一串英文數(shù)字20個(gè)字符的ID model: kimi, messages: [ { role: user, content: [ { type: image_url, image_url: { url: https://www.moonshot.cn/assets/logo/normal-dark.png } }, { type: text, text: 圖像描述了什么 } ] } ], // 建議關(guān)閉聯(lián)網(wǎng)搜索防止干擾解讀結(jié)果 use_search: false }響應(yīng)數(shù)據(jù){ id: cnn6l8ilnl92l36tu8ag, model: kimi, object: chat.completion, choices: [ { index: 0, message: { role: assistant, content: 圖像中展示了“Moonshot AI”的字樣這可能是月之暗面科技有限公司Moonshot AI的標(biāo)志或者品牌標(biāo)識(shí)。通常這樣的圖像用于代表公司或產(chǎn)品傳達(dá)品牌信息。由于圖像是PNG格式它可能是一個(gè)透明背景的logo用于網(wǎng)站、應(yīng)用程序或其他視覺(jué)材料中。 }, finish_reason: stop } ], usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, created: 1710123627 }在源碼中type: image_url與type: file是同一套上傳管道extractRefFileUrls同時(shí)識(shí)別兩種格式并提取url上傳時(shí)依據(jù) MIME 類(lèi)型判斷是走 image 還是 file 通道見(jiàn) src/api/controllers/chat.ts 中的uploadFile。refresh_token 存活檢測(cè)檢測(cè) refresh_token 是否存活如果存活live為 true否則為 false。請(qǐng)不要頻繁小于 10 分鐘調(diào)用此接口。POST /token/check請(qǐng)求數(shù)據(jù){ token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9... }響應(yīng)數(shù)據(jù){ live: true }該路由定義于 src/api/routes/token.ts內(nèi)部調(diào)用chat.getTokenLiveStatus它會(huì)真實(shí)地向 Kimi 的/api/auth/token/refresh發(fā)起一次刷新請(qǐng)求若能同時(shí)取回access_token與refresh_token則判定為存活見(jiàn) src/api/controllers/chat.ts。原理剖析一次對(duì)話(huà)請(qǐng)求的完整鏈路結(jié)合 src/api/controllers/chat.ts可以還原一次請(qǐng)求在 kimi-free-api 內(nèi)部的處理流程Token 刷新與緩存acquireToken以 refresh_token 為鍵查詢(xún)內(nèi)存緩存accessTokenMap未命中或超過(guò)有效期ACCESS_TOKEN_EXPIRES 300秒時(shí)調(diào)用requestToken向/api/auth/token/refresh換取 access_token并順帶請(qǐng)求/api/user獲取用戶(hù) ID作為后續(xù)請(qǐng)求的X-Traffic-Id。并發(fā)場(chǎng)景下同一 refresh_token 的刷新請(qǐng)求會(huì)進(jìn)入隊(duì)列等待避免短時(shí)間重復(fù)刷新。創(chuàng)建會(huì)話(huà)createConversation調(diào)用POST /api/chat創(chuàng)建臨時(shí)會(huì)話(huà)會(huì)話(huà)名為「未命名會(huì)話(huà)」除非傳入conversation_id復(fù)用已有會(huì)話(huà)。消息預(yù)處理與多輪合并messagesPrepare將多條消息合并為一條 user 消息格式如user:舊消息1\nassistant:舊消息2\nuser:新消息從第二輪開(kāi)始會(huì)在最新消息前注入 system prompt如「關(guān)注用戶(hù)最新的消息」若最新消息含文件/圖片則注入「關(guān)注用戶(hù)最新發(fā)送文件和消息」以提升模型對(duì)尾部?jī)?nèi)容的注意力用戶(hù)消息中的 URL 會(huì)被wrapUrlsToTags包裝為url標(biāo)簽以模擬網(wǎng)頁(yè)版行為否則 Kimi 端無(wú)法成功解析。并行預(yù)調(diào)用preN2s聯(lián)網(wǎng)搜索預(yù)處理、getSuggestion獲取建議、tokenSizeToken 計(jì)數(shù)等請(qǐng)求并行發(fā)出但錯(cuò)誤被吞掉用于模擬真實(shí)瀏覽行為另有fakeRequest隨機(jī)調(diào)用一批用戶(hù)接口進(jìn)行偽裝訪(fǎng)問(wèn)。模型路由與額度檢查若為探索版模型先請(qǐng)求/api/chat/research/usage檢查剩余額度已用完則拋出「探索版使用量已達(dá)到上限」異常。流式補(bǔ)全請(qǐng)求POST /api/chat/{convId}/completion/stream同步模式由receiveStream聚合為完整響應(yīng)流式模式由createTransStream實(shí)時(shí)轉(zhuǎn)換為 OpenAI chunk 格式。超長(zhǎng)續(xù)寫(xiě)與自動(dòng)清理若finish_reason length生成達(dá)到 max_tokens會(huì)用返回的segment_id繼續(xù)請(qǐng)求拼接完整響應(yīng)同步模式最多通過(guò)MAX_RETRY_COUNT 3、RETRY_DELAY 5000毫秒進(jìn)行失敗重試流傳輸結(jié)束后異步調(diào)用DELETE /api/chat/{convId}移除臨時(shí)會(huì)話(huà)這就是 README 所述「自動(dòng)清理會(huì)話(huà)痕跡」的實(shí)現(xiàn)——除非使用了conversation_id引用會(huì)話(huà)此時(shí)會(huì)話(huà)保留以支持后續(xù)多輪接續(xù)。注意事項(xiàng)與運(yùn)維優(yōu)化Nginx 反代優(yōu)化若使用 Nginx 反向代理 kimi-free-apiREADME 建議添加以下配置以?xún)?yōu)化流式輸出的體驗(yàn)# 關(guān)閉代理緩沖。當(dāng)設(shè)置為off時(shí)Nginx會(huì)立即將客戶(hù)端請(qǐng)求發(fā)送到后端服務(wù)器并立即將從后端服務(wù)器接收到的響應(yīng)發(fā)送回客戶(hù)端。 proxy_buffering off; # 啟用分塊傳輸編碼。分塊傳輸編碼允許服務(wù)器為動(dòng)態(tài)生成的內(nèi)容分塊發(fā)送數(shù)據(jù)而不需要預(yù)先知道內(nèi)容的大小。 chunked_transfer_encoding on; # 開(kāi)啟TCP_NOPUSH這告訴Nginx在數(shù)據(jù)包發(fā)送到客戶(hù)端之前盡可能地發(fā)送數(shù)據(jù)。這通常在sendfile使用時(shí)配合使用可以提高網(wǎng)絡(luò)效率。 tcp_nopush on; # 開(kāi)啟TCP_NODELAY這告訴Nginx不延遲發(fā)送數(shù)據(jù)立即發(fā)送小數(shù)據(jù)包。在某些情況下這可以減少網(wǎng)絡(luò)的延遲。 tcp_nodelay on; # 設(shè)置保持連接的超時(shí)時(shí)間這里設(shè)置為120秒。如果在這段時(shí)間內(nèi)客戶(hù)端和服務(wù)器之間沒(méi)有進(jìn)一步的通信連接將被關(guān)閉。 keepalive_timeout 120;Token 統(tǒng)計(jì)說(shuō)明由于推理側(cè)不在 kimi-free-apiToken 統(tǒng)計(jì)由 Kimi 官方端完成服務(wù)無(wú)法獲知真實(shí)的 Token 消耗。因此響應(yīng)中的usage字段將以固定數(shù)字返回源碼中固定為prompt_tokens: 1, completion_tokens: 1, total_tokens: 2README 明確提示不要將其當(dāng)作真實(shí)用量依據(jù)。其他使用提示多輪對(duì)話(huà)基于消息合并實(shí)現(xiàn)某些場(chǎng)景可能導(dǎo)致能力下降且受單輪最大 Token 數(shù)限制若需原生多輪體驗(yàn)請(qǐng)將首輪響應(yīng)中的id作為下一輪請(qǐng)求的conversation_id傳入——注意使用 conversation_id 時(shí)首輪必須傳 none否則第二輪會(huì)空響應(yīng)文檔解讀與圖像解析建議關(guān)閉use_search防止聯(lián)網(wǎng)搜索干擾解讀結(jié)果服務(wù)啟動(dòng)后可通過(guò)GET /ping返回pong進(jìn)行健康檢查見(jiàn) src/api/routes/ping.tsGET /v1/models則返回 OpenAI 格式的模型列表見(jiàn) src/api/routes/models.ts。總結(jié)kimi-free-api 以極低的門(mén)檻將 Kimi 的長(zhǎng)文本、聯(lián)網(wǎng)搜索、文檔與圖像解析能力包裝為 OpenAI 兼容接口接入只需從網(wǎng)頁(yè)端 Local Storage 獲取一個(gè) refresh_token部署既可選擇 Docker/Compose 一行命令啟動(dòng)也可通過(guò) Render、Vercel、Zeabur 等云平臺(tái)或原生 PM2 方式運(yùn)行接口層完整覆蓋對(duì)話(huà)補(bǔ)全、文檔解讀、圖像解析與 Token 存活檢測(cè)四類(lèi)能力并在源碼層面實(shí)現(xiàn)了 Token 自動(dòng)刷新緩存、多賬號(hào)隨機(jī)輪換、臨時(shí)會(huì)話(huà)自動(dòng)清理、超長(zhǎng)續(xù)寫(xiě)與失敗重試等健壯性機(jī)制。需要注意的是逆向接口存在不穩(wěn)定性與賬號(hào)封禁風(fēng)險(xiǎn)請(qǐng)遵守 README 免責(zé)聲明僅限自用與學(xué)習(xí)研究生產(chǎn)環(huán)境優(yōu)先使用官方開(kāi)放平臺(tái)。贊分享AI 應(yīng)用后端【免費(fèi)下載鏈接】kimi-free-api KIMI AI 長(zhǎng)文本大模型逆向API【特長(zhǎng)長(zhǎng)文本解讀整理】支持高速流式輸出、智能體對(duì)話(huà)、聯(lián)網(wǎng)搜索、探索版、K1思考模型、長(zhǎng)文檔解讀、圖像解析、多輪對(duì)話(huà)零配置部署多路token支持自動(dòng)清理會(huì)話(huà)痕跡僅供測(cè)試如需商用請(qǐng)前往官方開(kāi)放平臺(tái)。項(xiàng)目地址https://gitcode.com/GitHub_Trending/ki/kimi-free-api點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Kimi-Free-API終極指南零成本接入KIMI AI長(zhǎng)文本大模型Kimi Free API終極指南零成本接入KIMI AI長(zhǎng)文本大模型 想要免費(fèi)使用KIMI AI的強(qiáng)大長(zhǎng)文本處理能力嗎Kimi Free API項(xiàng)目AI 應(yīng)用后端3步解鎖全網(wǎng)音樂(lè)LXMusic音源一站式配置指南3步解鎖全網(wǎng)音樂(lè)LXMusic音源一站式配置指南 你是否經(jīng)常在不同音樂(lè)平臺(tái)間奔波只為找到一首想聽(tīng)的歌曲是否厭倦了為了一首歌下載多個(gè)APP的繁瑣操作 LX【親測(cè)免費(fèi)】 KIMI AI 長(zhǎng)文本大模型逆向API使用教程KIMI AI 長(zhǎng)文本大模型逆向API使用教程 項(xiàng)目介紹 KIMI AI 是一個(gè)專(zhuān)注于長(zhǎng)文本解讀和整理的逆向API項(xiàng)目。它支持高速流式輸出、智能體對(duì)話(huà)、聯(lián)網(wǎng)搜索AI 應(yīng)用后端上一篇如何7天打造你的JavaScript驅(qū)動(dòng)超可愛(ài)機(jī)器人Stack-Chan完整指南下一篇貓抓插件瀏覽器資源嗅探終極指南輕松下載網(wǎng)頁(yè)視頻音頻創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考