目录

一、引言

二、技术栈简介

三、项目结构

四、具体步骤

步骤一:从魔搭下载模型

1.官网地址

2.下载Qwen3-0.6B 模型

步骤二:依赖导入(重中之重)

1.基础依赖(必装)

2.可选推荐依赖(提升稳定性或性能)

步骤三:编写模型封装类——AIModel.py

步骤四:编写 FastAPI 接口——app.py

步骤五:启动服务并测试 API

1.运行app.py

方法一:直接运行

方法二:终端运行

2.测试

五、代码扩展性与适配性建议

1.支持的模型类别

2.不适用的情况

六、总结

七、拓展建议

八、致谢和参考资料

九、结语


一、引言

随着大语言模型的普及,越来越多开发者希望在本地部署并调用这些模型。相比 HuggingFace,国内用户更推荐使用阿里巴巴推出的 魔搭 ModelScope 社区,它不仅提供了丰富的中文文档、一键下载功能,还集成了大量阿里自研模型如 Qwen、M6 等。

本文将手把手教你如何通过 魔搭 SDK + FastAPI 搭建一个基于 Qwen3-0.6B 的本地聊天接口服务。整套代码结构清晰、易于扩展,适用于其他魔搭平台上的 Causal LM 类型模型。

Qwen3-0.6B 具有以下特点:

  • 类型:因果语言模型
  • 训练阶段:预训练 & 后训练
  • 参数数量:0.6B
  • 非嵌入参数数量:0.44B
  • 层数:28
  • 注意力头数(GQA):Q 为 16,KV 为 8
  • 上下文长度:32,768

二、技术栈简介

技术 说明
FastAPI 快速构建 Web 接口,支持异步
Uvicorn ASGI 服务器,用于运行 FastAPI 应用
ModelScope 魔搭提供的 Python SDK,用于加载模型和推理
PyTorch 支持 GPU 加速的深度学习框架

三、项目结构

Qwen3-0.6B-Chat-API/
├── app.py                  # FastAPI 主程序
├── AIModel.py              # 魔搭模型封装类
└── Models/                 # 存放模型文件(可选)
    └── Qwen3-0.6B/         # Qwen3-0.6B 模型目录

四、具体步骤

步骤一:从魔搭下载模型

1.官网地址

ModelScope 魔搭社区

2.下载Qwen3-0.6B 模型

访问链接:

通义千问3-0.6B · 模型库 (modelscope.cn)

点击页面上的【下载模型】即可下载完整模型包,该网址也可查询该模型的具体信息

步骤二:依赖导入(重中之重)

为了确保你的项目可以正常运行(基于 FastAPI + ModelScope + Qwen3-0.6B),你需要在 Python 环境中安装以下依赖包:

1.基础依赖(必装)

库名 版本要求 安装命令 用途
fastapi >=0.95.0 pip install fastapi 构建高性能 API 接口
uvicorn >=0.22.0 pip install uvicorn ASGI 服务器,支持异步请求
pydantic >=2.0.0 pip install pydantic FastAPI 使用的请求体校验工具
modelscope >=1.17.0 pip install modelscope 魔搭 SDK,用于加载模型和推理
torch >=2.0.0 pip install torch PyTorch 深度学习框架,模型运行依赖

2.可选推荐依赖(提升稳定性或性能)

库名 版本要求 安装命令 用途
numpy >=1.24.0 pip install numpy 数据处理底层依赖
transformers >=4.30.0 pip install transformers 如果你想兼容 HuggingFace 模型
datasets ==2.14.0 pip install datasets==2.14.0 ModelScope 兼容性依赖
packaging >=23.0 pip install packaging 包管理工具
requests >=2.30.0 pip install requests 下载模型文件时使用
tqdm >=4.65.0 pip install tqdm 显示进度条
aiohttp >=3.8.0 pip install aiohttp 异步网络请求支持
huggingface-hub >=0.14.0 pip install huggingface-hub 支持从 HF Hub 加载模型

步骤三:编写模型封装类——AIModel.py

创建 AIModel.py 文件,定义一个基于魔搭 SDK 的模型封装类:

# AIModel.py
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks


class Qwen3_0_6B:
    def __init__(self, model_path="Models/Qwen3-0.6B", device="cpu"):
        self.model_path = model_path
        self.device = device
        print(f"Loading model from {model_path} using ModelScope...")
        self.chat_pipeline = pipeline(task=Tasks.text_generation, model=model_path)
        print("Model loaded successfully.")

    def chat(self, input_text, max_new_tokens=100):
        result = self.chat_pipeline(input_text, max_length=max_new_tokens)
        return result["text"]

注意:

  • 使用了 modelscope.pipeline 来统一处理文本生成任务。
  • Tasks.text_generation 是魔搭预定义的任务类型之一。
  • max_length 参数控制生成的最大 token 数量,等价于 HuggingFace 中的 max_new_tokens

步骤四:编写 FastAPI 接口——app.py

创建 app.py 文件,编写 FastAPI 接口:

# app.py
from fastapi import FastAPI
from pydantic import BaseModel
from AIModel import Qwen3_0_6B
import uvicorn

app = FastAPI()

print("Initializing Qwen3-0.6B model via ModelScope...")
model = Qwen3_0_6B(device="cpu")  # 可改为 "cuda" 如果你有 GPU

# 请求体模型
class ChatRequest(BaseModel):
    prompt: str
    max_new_tokens: int = 100


@app.get("/")
def read_root():
    return {"message": "Qwen3-0.6B API is running!"}


@app.post("/chat")
def chat(request: ChatRequest):
    response = model.chat(request.prompt, request.max_new_tokens)
    return {
        "code": 200,
        "message": "操作成功",
        "data": {
            "response": response
        }
    }


if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000, workers=1)

步骤五:启动服务并测试 API

1.运行app.py

方法一:直接运行

在编程软件上点击运行按钮进行直接运行,例如IDEA、pycharm等

方法二:终端运行

在终端运行

python app.py

2.测试

服务将在 http://127.0.0.1:8000 启动,你可以使用 curl 测试接口:

curl -X POST "http://127.0.0.1:8000/chat" \
     -H "Content-Type: application/json" \
     -d '{"prompt":"你好","max_new_tokens":100}'

如果能看到

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "response": "你好....."
  }
}

说明已经部署成功了,当然你也可以访问 http://127.0.0.1:8000/docs 查看自动生成的 API 文档。

五、代码扩展性与适配性建议

1.支持的模型类别

这套代码适用于所有魔搭平台上提供且支持 text_generation 任务的模型,包括但不限于:

  • Qwen 系列(Qwen3-0.6B、Qwen2-7B、Qwen3-8B)
  • Phi-3-mini / Phi-2(微软小型模型)
  • Llama3 / Mistral(可通过魔搭镜像源获取)

2.不适用的情况

以下情况需要额外调整代码:

  • 使用非 text_generation 任务的模型(如图像理解、语音识别等)
  • 使用特殊 Tokenizer 或解码逻辑的模型

六、总结

本文介绍了如何使用 魔搭 ModelScope SDK + FastAPI 快速搭建一个本地语言模型服务,并提供了一个通用的接口模板。通过简单的模型路径替换,你就可以部署任何兼容的魔搭模型。这套方案非常适合国内开发者使用,尤其适合没有访问 HuggingFace 权限或网络受限的场景。由于模型不是很大,适用于部署配置不是很好的服务器和电脑,因为大模型所需要的资源一般学习者很难带动。小模型可用于学习构建过程,提升自我代码水平。

七、拓展建议

  • 将模型部署到远程服务器,供多用户访问。
  • 添加身份验证(Token 认证)保护接口安全。
  • 使用前端页面对接 /chat 接口,实现网页版对话界面。
  • 结合 LangChain 构建更复杂的 Agent 系统。

八、致谢和参考资料

九、结语

如果你喜欢这篇文章,欢迎点赞、收藏、分享给更多开发者朋友。如果你在部署过程中遇到问题,也欢迎留言交流!谢谢!!!

附录

如果想了解springboot后端如何调用该API可以查看我的另一篇文章,当然key得看自己的需求对python代码进行修改满足其安全性。

封装 AI 模型调用工具类 AIModelsUtil-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐