在树莓派5上调用通义千问API实现多轮对话和流式输出

发布于:2024-08-17 ⋅ 阅读:(138) ⋅ 点赞:(0)

在树莓派5上调用通义千问API🚀

        在实现了自建虚拟环境和安装自己要的包之后,打算用这个做一下大模型API的调用相关的工作,正好尝试一下在Linux系统上调用一下通义千问的API进行多轮对话和流式输出是什么效果,然后大模型专栏里也好久没更新了,这也是之前买树莓派的时候就规划的一篇文章了。


在这里插入图片描述


前置文章调用阿里通义千问大语言模型API-小白新手教程-python
前置文章树莓派5环境配置笔记 新建虚拟python环境—安装第三方库—配置Thonny解释器

系列文章1树莓派初探—给树莓派5 安装Raspberry Pi OS 操作系统
系列文章2使用VNC-viewer对树莓派5 远程连接桌面—详细记录笔记版


1.给树莓派OS安装中文输入法


        其实和Linux上安装输入法的步骤基本是一样的,也是安装谷歌的拼音输入法,我去了解一下好像大部分有换源什么的,我看了一下不用换源应该也行,首先是打开系统的命令窗口。首先输入下面的命令更新一下软件包,保证之后下载的所有文件都能是最新的。

sudo apt update

在这里插入图片描述
然后输入下面的命令安装fitcx中文输入法和输入法引擎

sudo apt install fcitx fcitx-pinyin fcitx-googlepinyin

在这里插入图片描述
安装完之后在系统里找Fcitx Configuration 配置。

在这里插入图片描述
点开之后进入如下界面,点击左下角的加号。

在这里插入图片描述
然后把这个只显示当前系统语言的对号勾掉。

在这里插入图片描述
在对话框里搜pinyin

在这里插入图片描述
选中Pinyin然后点OK

在这里插入图片描述
之后在这里出现了PInyin选项。

在这里插入图片描述
之后随便找一个可以输入的地方,安装Ctrl+空格,切换输入法,出现出现下面的提示则切换成功,就可以开始是用拼音打字了。如果没切换出来的话就重启一下

在这里插入图片描述

在这里插入图片描述

2.新建虚拟环境


        之后需要在树莓派OS系统中安装一个镜像环境,在之前的博客中研究过,如果不建新的虚拟环境的话,是不能安装第三方库的,虚拟环境相关更详细的过程描述信息见如下文章,这里就简单说一下命令流程。
树莓派5环境配置笔记 新建虚拟python环境—安装第三方库—配置Thonny解释器

在终端中输入下面的代码新建一个叫llm的虚拟环境

python3 -m venv llm

然后输入下面的命令进入llm虚拟环境

source myenv/bin/activate

然后配置全局清华园

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

使用下面的命令看全局配置情况

pip config list

在这里插入图片描述

3.在虚拟环境中安装dashscope库(调用API使用)


pip install dashscope

在这里插入图片描述
在这里插入图片描述

4.获取通义千问的API Key


见下面文章的第二部分。
调用阿里通义千问大语言模型API-小白新手教程-python:https://chen-hao.blog.csdn.net/article/details/135868918

在这里插入图片描述

5.配置Tonny编译器使用的python解释器


这里请看下面文章的第四部分:
树莓派5环境配置笔记 新建虚拟python环境—安装第三方库—配置Thonny解释器https://blog.csdn.net/chrnhao/article/details/141256300

在这里插入图片描述

6.在树莓派上运行多轮对话流式输出代码


代码和相关介绍源自下面文章中的第八部分。
调用阿里通义千问大语言模型API-小白新手教程-python:https://chen-hao.blog.csdn.net/article/details/135868918
在这里插入图片描述

        在运行程序之前我省略了将API-KEY配置为环境变量这部分,因为配置环境变量比较麻烦还需要修改文件,由于目前是测试阶段主要测试是程序能不能跑通所以我直接把API-KEY写在了代码里(图里打码了)。

将下面的代码粘入Tonny IDE 保存到一个文件夹中(我在桌面新建立了一个),然后运行,在下面的Shell部分进行提问交互。

from dashscope import Generation
from dashscope.api_entities.dashscope_response import Role
import dashscope

dashscope.api_key = "自己申请的API-KEY"

messages = []

while True:
    message = input('user:')
    # 将输入信息加入历史对话
    messages.append({'role': Role.USER, 'content': message})
    # 获得模型输出结果
    response = Generation.call(Generation.Models.qwen_max, messages=messages, result_format='message')
    print('system:' + response.output.choices[0]['message']['content'])
    # 将输出信息加入历史对话
    messages.append({'role': response.output.choices[0]['message']['role'],
                     'content': response.output.choices[0]['message']['content']})

好的在树莓派5上完美运行,这里懒了没放GIF动图,但是实际上推理的速度也还是很可以的!

在这里插入图片描述
在这里插入图片描述

结束


        然后这篇写的就不如之前的很详细了,因为涉及到不少的基础知识,主要是了验证和记录一下这个方案的可行性,在Linux系统上也体验一下大语言模型的输出,以后要是做点比赛或毕设的话也都是不错的选,之后看看能不能直接1用树莓派部署一个1.8B离线模型运行一下试试。


网站公告

今日签到

点亮在社区的每一天
去签到