【工业树莓派CM0 Dev Board】AI 对话
本文介绍了树莓派 CM0 Dev Board 使用大语言模型 API 接口,实现 AI 对话的项目设计,包括准备工作、API获取、流程图、工程代码、终端对话和网页设计等,为相关产品在 AI 大语言模型领域的开发设计和快速应用提供了参考。
【工业树莓派CM0 Dev Board】AI对话
本文介绍了树莓派 CM0 Dev Board 使用大语言模型 API 接口,实现 AI 对话的项目设计,包括准备工作、API获取、流程图、工程代码、终端对话和网页设计等。
项目介绍
- 准备工作:包括固件升级、安装 flask 库、获取 AI 大语言模型 API 秘钥等;
- 终端 AI 对话:通过 AI 大模型 API 通道实现 Shell 终端的对话;
- 网页 AI 聊天:设计 Web 网页前端 UI 界面,后端主程序将 AI 反馈消息传递给 Web 前端,实现网页对话。
项目框架

准备工作
系统安装及环境搭建详见:【工业树莓派CM0 Dev Board】介绍、镜像烧录、系统测试 .
硬件连接
- 若采用 SSH 远程登录操作,则仅需连接电源供电即可;
- 若采用本地登录,则需连接 HDMI 视频流传输线、USB 键盘连接线等;

库安装
- 安装网页服务器所需 flask 库,终端执行
sudo apt install python3-flask
API 获取
这里使用小智、DeepSeek 和 ChatGPT 的开发者 API 令牌,详见对应的官网介绍,或进入开发者社区申请。
流程图
文件目录
/home/ljl/AgentChat
├── chat_agent_web.py # 后端程序文件
└── web/
└── index.html # 前端网页文件
终端对话
通过调用 AI 大语言模型的 API 接口实现 Shell 终端的智能对话。
工程代码
终端执行 touch chat_agent.py 指令新建文件,并使用 nano 编辑器添加如下代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json, time, signal, sys, requests
API_KEY = "sk-4160d6151421480b83fa9f0c264axxxx" # 大模型 API 密钥
def ai_chat(prompt):
"""发送消息到AI并获取回复"""
try:
r = requests.post(
"https://chat.ecnu.edu.cn/open/api/v1/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"model": "ecnu-plus",
"messages": [
{"role": "system", "content": "简洁回答"},
{"role": "user", "content": prompt}
],
"temperature": 0.7,
"max_tokens": 200
},
timeout=10
)
return r.json()["choices"][0]["message"]["content"].strip() if r.status_code == 200 else f"错误:{r.status_code}"
except Exception as e:
return f"请求异常:{e}"
# 主程序
signal.signal(signal.SIGINT, lambda *_: print("\n退出") or sys.exit(0))
print("AI对话机器人 | 输入exit退出\n")
while True:
try:
user_input = input("你: ").strip()
if user_input.lower() in ['exit', 'quit']: break
if not user_input: continue
start_time = time.time()
reply = ai_chat(user_input)
print(f"AI: ({time.time()-start_time:.1f}s) {reply}\n")
except KeyboardInterrupt:
print("\n再见!")
break
except Exception as e:
print(f"出错: {e}")
保存代码;
效果演示
- 终端执行指令
python chat_agent.py运行程序,即可实现对话

Ctrl + C 退出程序;
其他模型
- 使用 ChatGPT 实现对话

- 使用 Xiaozhi 智能体 实现对话

网页设计
增加网页前端界面,实现更加美观的聊天 UI 设计,增强对话体验。
代码
-
终端执行
mkdir web新建文件夹,用于存放网页文件; -
进入 web 文件夹,执行
touch index.html指令新建网页文件,并nano index.html添加如下代码
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Chat with Raspberry Pi CM0</title>
<style>
body{font-family:Arial,Helvetica,sans-serif;background:#f5f5f5;margin:0;padding:20px}
#box{max-width:600px;margin:auto;background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.1)}
h2{text-align:center;margin-top:0}
#history{height:400px;overflow-y:auto;border:1px solid #ddd;padding:10px;margin-bottom:10px;background:#fafafa}
.line{margin:6px 0}
.user{color:#0066cc}
.ai{color:#009933}
#inputArea{display:flex}
#msgInput{flex:1;padding:8px;font-size:14px}
#sendBtn{padding:8px 16px;margin-left:6px}
</style>
</head>
<body>
<div id="box">
<h2>Chat with Raspberry Pi CM0</h2>
<div id="history"></div>
<div id="inputArea">
<input id="msgInput" placeholder="输入消息,回车发送"/>
<button id="sendBtn" onclick="send()">发送</button>
</div>
</div>
<script>
const hist = document.getElementById('history');
const input = document.getElementById('msgInput');
function addLine(cls, txt){
const div = document.createElement('div');
div.className = 'line '+cls;
div.textContent = txt;
hist.appendChild(div);
hist.scrollTop = hist.scrollHeight;
}
async function send(){
const msg = input.value.trim();
if(!msg) return;
addLine('user', '你: '+msg);
input.value = '';
const res = await fetch('/chat', {method:'POST', body:new URLSearchParams({msg})});
const data = await res.json();
addLine('ai', 'AI: '+data.reply);
}
input.addEventListener('keydown', e=>{if(e.key==='Enter') send()});
</script>
</body>
</html>
保存代码;
同时后端运行代码调整如下
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json, time, requests, signal, sys
from flask import Flask, send_from_directory, request, jsonify
API_KEY = "sk-4160d6151421480b83fa9f0c264axxx" # API 秘钥
MODEL_URL = "https://chat.ecnu.edu.cn/open/api/v1/chat/completions"
app = Flask(__name__)
# ---------- AI 调用 ----------
def ai_chat(prompt: str) -> str:
try:
resp = requests.post(
MODEL_URL,
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"model": "ecnu-plus",
"messages": [
{"role": "system", "content": "简洁回答"},
{"role": "user", "content": prompt}
],
"temperature": 0.7,
"max_tokens": 200
},
timeout=10
)
if resp.status_code == 200:
return resp.json()["choices"][0]["message"]["content"].strip()
return f"错误:HTTP {resp.status_code}"
except Exception as e:
return f"请求异常:{e}"
# ---------- 路由 ----------
@app.route("/")
def index():
return send_from_directory("web", "index.html")
@app.route("/static/<path:filename>")
def web_static(filename):
return send_from_directory("web", filename)
@app.route("/chat", methods=["POST"])
def chat():
user_input = request.form.get("msg", "").strip()
if not user_input:
return jsonify({"reply": "输入不能为空"})
start = time.time()
reply = ai_chat(user_input)
return jsonify({"reply": f"({time.time()-start:.1f}s) {reply}"})
# ---------- 退出 ----------
signal.signal(signal.SIGINT, lambda *_: print("\n退出") or sys.exit(0))
# ---------- 启动 ----------
if __name__ == "__main__":
print("🚀 网页对话已启动 → http://127.0.0.1:5000")
app.run(host="0.0.0.0", port=5000, debug=False)
保存代码。
效果
-
终端执行指令
python chat_agent_web.py运行程序; -
终端打印网页访问地址、访问信息等;

-
同一局域网下,浏览器输入终端输出的网页地址
192.168.1.125:8080打开目标网页;
-
在输入框填写问题,按
Enter键发送消息,即可实现 AI 智能对话;
总结
本文介绍了树莓派 CM0 Dev Board 使用大语言模型 API 接口,实现 AI 对话的项目设计,包括准备工作、API获取、流程图、工程代码、终端对话和网页设计等,为相关产品在 AI 大语言模型领域的开发设计和快速应用提供了参考。
更多推荐



所有评论(0)