MLC-MiniCPM API参考:把OpenAI兼容REST接口接入你自己的App(附示例)
2026/8/24 9:29:45 网站建设 项目流程

MLC-MiniCPM API参考:把OpenAI兼容REST接口接入你自己的App(附示例)

【免费下载链接】mlc-MiniCPMMiniCPM on Android platform.项目地址: https://gitcode.com/gh_mirrors/ml/mlc-MiniCPM

MLC-MiniCPM 是一款支持本地部署大语言模型的开源项目,其内置的OpenAI 兼容 REST API让你无需重写业务代码,就能把 MiniCPM 等本地模型接入自己的 App、脚本或 Agent 系统。本文将带你快速启动 MLC-MiniCPM 的 REST 服务,并给出 Python 与 OpenAI SDK 两种接入方式的完整示例。

为什么选择 MLC-MiniCPM 的 REST 接口?

大多数开发者都熟悉 OpenAI 的chat/completions协议。MLC-MiniCPM 的 rest.py 基于 FastAPI 实现了一个协议完全对齐的本地服务端,意味着:

  • 零改造:把base_url从 OpenAI 换成http://127.0.0.1:8000/v1即可;
  • 本地推理:数据不出本机,隐私敏感场景(医疗、法务、金融)友好;
  • 多语言统一:REST 是统一接口,Python、Node.js、Go 甚至移动端 App 都能直接调用。

一键启动 MLC-MiniCPM REST 服务

安装mlc_chat包后(可pip install mlc-ai-nightly mlc-chat-nightly,或克隆仓库https://gitcode.com/gh_mirrors/ml/mlc-MiniCPM后按文档构建),一条命令即可启动:

python -m mlc_chat.rest --model MODEL [--device auto] [--host 127.0.0.1] [--port 8000]

常用启动参数(定义于 RestAPIArgs):

参数说明默认值
--model模型文件夹名或路径(如Llama-2-7b-chat-hf-q4f16_1必填
--lib-path模型库文件(.so)完整路径自动查找
--device运行设备:cudametalvulkanrocmopenclautoauto
--host服务绑定地址127.0.0.1
--port服务端口8000

启动后访问http://127.0.0.1:8000/docs可以看到交互式 API 文档页面,方便在线调试。

MLC-MiniCPM REST API 端点速查

端点方法作用
/v1/chat/completionsPOSTOpenAI 风格对话补全(支持流式与 Function Calling)
/v1/completionsPOST传统 prompt 补全
/v1/embeddingsPOST文本向量化(可用于 RAG 检索)
/chat/resetPOST重置会话历史
/stats//verbose_statsGET获取推理性能统计(encode/decode 速度)
/v1/llm-vscode/completionsPOST代码补全(面向编辑器集成)

OpenAI 兼容参数说明

/v1/chat/completions请求体与 OpenAI 协议保持一致(定义见 openai_api.py),常用字段:

  • model(必填):模型名,与服务端启动时一致即可;
  • messages(必填):消息列表,roleuserassistant,最后一条应为user
  • stream:设为true时以 SSE 流式返回;
  • temperature/top_p:采样温度与核采样阈值;
  • repetition_penalty/presence_penalty/frequency_penalty:重复抑制参数;
  • max_gen_len:生成长度上限(对应 OpenAI 的max_tokens);
  • stop:遇指定字符串立即停止;
  • tools/tool_choice:Function Calling,支持autonone或强制指定函数。

用 requests 三行代码接入 MLC-MiniCPM

最轻量的接入方式,直接 POST JSON(完整示例见 sample_client.py):

import requests payload = { "model": "vicuna-v1-7b", "messages": [{"role": "user", "content": "写一首俳句"}], "stream": False } r = requests.post("http://127.0.0.1:8000/v1/chat/completions", json=payload) print(r.json()["choices"][0]["message"]["content"])

用 OpenAI SDK 无缝替换 API 地址

如果项目里已经在用 OpenAI 官方 SDK,只需改一行配置即可迁移到本地模型:

import openai openai.api_key = "None" openai.api_base = "http://127.0.0.1:8000/v1" completion = openai.ChatCompletion.create( model="vicuna-v1-7b", messages=[{"role": "user", "content": "写一首关于春天的诗"}] ) print(completion.choices[0].message.content)

Node.js 侧同理,把 SDK 的basePath指向http://127.0.0.1:8000/v1(参考 sample_openai.js)。

流式输出:边生成边推送

将请求中的stream设为true,服务端会以text/event-stream逐块返回,每块以data:前缀开头,结束标志为data: [DONE]。消费端只需剥掉前缀后解析choices[0].delta.content

with requests.post(url, json=payload, stream=True) as r: for chunk in r: line = chunk[6:].decode("utf-8").strip() if line == "[DONE]": break import json print(json.loads(line)["choices"][0]["delta"].get("content", ""), end="")

这种模式适合做聊天界面打字机效果,用户体验接近云端 API。

进阶:Embeddings 与 LangChain 集成

/v1/embeddings端点可对文本生成归一化向量,配合 MLCEmbeddings 可以零成本搭建本地 RAG 问答系统——对话链、问答链、向量检索的完整示例见 sample_langchain.py。此外/stats端点可实时监控 token 生成速度,方便你做性能调优。

常见问题

Q:连接被拒绝?确认服务已启动且端口一致;默认只监听127.0.0.1,跨机器访问需加--host 0.0.0.0并注意防火墙。

Q:model字段填错会怎样?请求体中的model需与启动服务时加载的模型对应,否则可能报错。

Q:支持并发吗?当前为单会话模型,多次chat/completions调用间用stateless=True重置上下文,适合独立请求;多轮对话请在messages中自行携带历史。


📌小结:MLC-MiniCPM 的 REST 接口与 OpenAI 协议高度兼容——启动服务、改一行base_url、复用现有 SDK,三步即可把本地大模型能力注入你的应用。完整端点细节可参考官方文档 rest.rst。

【免费下载链接】mlc-MiniCPMMiniCPM on Android platform.项目地址: https://gitcode.com/gh_mirrors/ml/mlc-MiniCPM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询