---
title: 基于香橙派AIpro+MindSpore实现Qwen聊天机器人-官方技术文章-昇腾社区
description: 通义千问Qwen是阿里云自主研发的大语言模型，Qwen-1.5-0.5B 为其轻量版，拥有5亿参数，具备低成本和高效文本生成能力。适用于文字创作、文本处理、编程辅助、翻译服务和对话模拟等场景。在案例介绍在OrangePi AIpro开发板上基于MindSpore框架实现Qwen-1.5-0.5B模型，体验和模型的对话互动，完成和聊天机器人对话。
keywords: AIpro,MindSpore,Qwen,基于香橙派,聊天机器人,官方技术文章,昇腾社区,引言
url: https://www.hiascend.com/developer/techArticles/20250424-3?envFlag=1
section: (其他)
---

# 基于香橙派AIpro+MindSpore实现Qwen聊天机器人-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20250424-3?envFlag=1
描述: 通义千问Qwen是阿里云自主研发的大语言模型，Qwen-1.5-0.5B 为其轻量版，拥有5亿参数，具备低成本和高效文本生成能力。适用于文字创作、文本处理、编程辅助、翻译服务和对话模拟等场景。在案例介绍在OrangePi AIpro开发板上基于MindSpore框架实现Qwen-1.5-0.5B模型，体验和模型的对话互动，完成和聊天机器人对话。
关键词: AIpro,MindSpore,Qwen,基于香橙派,聊天机器人,官方技术文章,昇腾社区,引言

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

基于香橙派AIpro+MindSpore实现Qwen聊天机器人

基于香橙派AIpro+MindSpore实现Qwen聊天机器人

香橙派AIpro

发表于: 2025/04/24

# 基于香橙派AIpro+MindSpore实现Qwen聊天机器人

## 01引言

通义千问Qwen是阿里云自主研发的大语言模型，Qwen-1.5-0.5B 为其轻量版，拥有5亿参数，具备低成本和高效文本生成能力。适用于文字创作、文本处理、编程辅助、翻译服务和对话模拟等场景。

在本次任务中，我们将基于昇思MindSpore在香橙派开发板上运行通义千问Qwen-1.5-0.5B模型，体验和模型的对话互动，完成和聊天机器人对话。

## 02环境准备

开发者拿到香橙派开发板后，首先需要进行硬件资源确认，镜像烧录及 CANN 和 MindSpore 版本的升级，才可运行该案例，具体如下：

- 硬件：香橙派 AIpro 8T(16G) 开发板或者香橙派AIpro 20T(24G)
- 镜像：香橙派官网 Ubuntu 镜像
- CANN：8.0.RC3.alpha002
- MindSpore：2.4.10

### 1、镜像烧录

运行该案例需要烧录香橙派官网 Ubuntu 镜像，烧录流程参考昇思 MindSpore 官网--香橙派开发专区--环境搭建指南--镜像烧录 [了解详情](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html)章节。注意官网链接示例镜像与本案例镜像有所区别，以本案例要求为准，注意区分。

### 2、CANN 升级

CANN 升级参考昇思 MindSpore 官网--香橙派开发专区--环境搭建指南--CANN 升级 [了解详情](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html)章节。本案例的 CANN 版本要求是 8.0.RC3.alpha002，注意官网链接示例升级版本与本案例所需版本有所区别，以本案例要求为准，注意区分。

### 3、MindSpore 升级

MindSpore 升级参考昇思 MindSpore 官网--香橙派开发专区--环境搭建指南--MindSpore 升级 [了解详情](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/environment_setup.html)章节。本案例的 MindSpore 版本要求是 2.4.10，注意官网链接示例升级版本与本案例所需版本有所区别，以本案例要求为准，注意区分。

### 4、Jupyter notebook启动

Jupyter notebook 启动参考MindSpore 升级参考昇思 MindSpore 官网--香橙派开发专区--模型在线推理 [了解详情](https://www.mindspore.cn/docs/zh-CN/r2.4.10/orange_pi/model_infer.html)章节 。因开发板环境烧录镜像稍有差异，samples/notebooks不一定存在，若不存在，可用orange-pi-mindspore目录下start_notebook.sh脚本启动。

## 03实验过程

本实验香橙派AIpro开发板需连接键盘、鼠标、显示器，实验代码在Jupyter notebook下运行，代码可从链接 [了解详情](https://github.com/mindspore-courses/orange-pi-mindspore/blob/master/Online/14-qwen1.5-0.5b/qwen1.5-0.5b.ipynb)中下载后放置到对应目录，也可把下面代码拷贝到notebook中运行。

### 1、权重加载

使用mindnlp套件加载Qwen/Qwen1.5-0.5B-Chat模型权重，该套件包含了许多自然语言处理的常用方法，可以方便地加载和使用huggingface的模型权重。注意，首次运行时请耐心等待模型下载。

（1）mindnlp安装

```
!pip install mindnlp
```

（2）下载模型

```
import mindspore
from mindnlp.transformers import AutoModelForCausalLM, AutoTokenizer
    
# Loading the tokenizer and model from Hugging Face's model hub.
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", ms_dtype=mindspore.float16)
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", ms_dtype=mindspore.float16)
```

### 2、模型推理

模型加载完成后定义聊天机器人所需处理的事务：加载与处理聊天历史，转换成适合模型输入的格式；并通过流式生成器的推理模式逐步生成聊天机器人的回复。

```
from mindnlp.transformers import TextIteratorStreamer
from threading import Thread
    
system_prompt = "You are a helpful and friendly chatbot"
    
def build_input_from_chat_history(chat_history, msg: str):
     messages = [{'role': 'system', 'content': system_prompt}]
     for user_msg, ai_msg in chat_history:
          messages.append({'role': 'user', 'content': user_msg})
          messages.append({'role': 'assistant', 'content': ai_msg})
     messages.append({'role': 'user', 'content': msg})
     return messages
    
# Function to generate model predictions.
def predict(message, history):
    # Formatting the input for the model.
    messages = build_input_from_chat_history(history, message)
    input_ids = tokenizer.apply_chat_template(
                messages,
                add_generation_prompt=True,
                return_tensors="ms",
                tokenize=True
               )
    streamer = TextIteratorStreamer(tokenizer, timeout=300, skip_prompt=True, skip_special_tokens=True)
    generate_kwargs = dict(
            input_ids=input_ids,
            streamer=streamer,
            max_new_tokens=1024,
            do_sample=True,
            top_p=0.9,
            temperature=0.1,
            num_beams=1,
            )
    t = Thread(target=model.generate, kwargs=generate_kwargs)
    t.start()  # Starting the generation in a separate thread.
    partial_message = ""
    for new_token in streamer:
        partial_message += new_token
        if '</s>' in partial_message:  # Breaking the loop if the stop token is generated.
             break
        yield partial_message
```

### 3、启动聊天机器人

下面我们将启动一个基于Gradio的聊天界面，用于与聊天机器人进行交互。在浏览器中打开链接http://127.0.0.1:7860/，开始与聊天机器人的交互。您可以在页面下方的消息输入框中输入任何问题，或者点击页面下方 Examples 中预设的问题，然后点击 Submit 按钮与聊天机器人进行对话。注意，第一次回答需要较长时间的加载（约1~2分钟），请耐心等待。

## 04实验视频

本实验配套视频，供参考学习。

## 05实验总结

本实验在OrangePi AIpro开发板上基于MindSpore框架实现Qwen-1.5-0.5B模型，体验和模型的对话互动，完成和聊天机器人对话。通过本案例的学习，您可以掌握香橙派AIpro开发板的使用及Qwen模型在开发板部署的流程。

本页内容
