ESP32 C6调用DeepSeek API实现AIGC智能硬件交互
1. 项目缘起当ESP32遇上AIGC我们能做什么最近在玩一块DFRobot的Beetle ESP32 C6开发板这板子挺有意思集成了Wi-Fi 6和蓝牙5.0性能比经典的ESP32-S3还要强一些。玩了一阵基础的外设和网络功能后我就在想现在AIGC生成式AI这么火能不能让这块小小的物联网开发板也“智能”起来毕竟让一个硬件设备具备简单的对话、内容生成能力听起来就很有搞头。这个想法并非天方夜谭。ESP32 C6的核心是一颗240MHz的RISC-V处理器运行MicroPython或者Arduino框架绰绰有余。虽然它不可能本地运行百亿参数的大模型但通过调用云端AI服务的API它完全可以成为一个智能终端。想象一下一个能语音交互的智能家居中枢、一个能根据传感器数据生成简短报告的环境监测站或者一个能回答简单问题的信息展示屏——这些场景的实现门槛因为AIGC API的存在而大大降低了。所以这次评测的第二部分我就聚焦于“AIGC大爆发”这个主题。目标很明确让Beetle ESP32 C6成功调用一个主流的AIGC API比如DeepSeek、Kimi等并实现一个简单的交互demo。整个过程会涉及网络连接、HTTP请求、JSON数据处理以及API密钥管理等物联网开发中的常见问题。我会把踩过的坑、成功的步骤以及一些优化思路都记录下来如果你手头也有ESP32系列的板子想给它注入一点“AI灵魂”那这篇内容应该能给你提供一条清晰的路径。2. 开发环境搭建与核心工具选型要让ESP32 C6跑起来第一步是搭建开发环境。这里有几个主流选择Arduino IDE、PlatformIOVSCode插件以及MicroPython。考虑到我们要做的是网络API调用代码逻辑以网络请求和数据处理为主对实时性要求不高但对开发效率和字符串处理友好度有要求我最终选择了MicroPython。2.1 为什么选择MicroPython首先Python语法简洁处理HTTP响应和JSON数据非常方便几行代码就能搞定避免了C/C中繁琐的内存管理和字符串操作。其次MicroPython社区活跃针对ESP32的网络库如urequests、ujson比较成熟。最后对于我们这个AIGC API调用的场景逻辑是“发送请求-等待响应-解析结果”这种工作模式用Python来描述更加直观。当然如果你对性能有极致要求或者项目需要复杂的多任务和底层硬件操作ArduinoC仍然是更优的选择。环境准备步骤如下固件烧录首先需要为Beetle ESP32 C6刷入MicroPython固件。你需要从MicroPython官网下载针对ESP32-C6的最新稳定版固件.bin文件。然后使用esptool.py工具进行烧录。连接板子到电脑确认串口号如COM3或/dev/ttyUSB0在命令行执行esptool.py --chip esp32c6 --port COM3 erase_flash esptool.py --chip esp32c6 --port COM3 --baud 460800 write_flash 0x0 path/to/your/firmware.bin注意将COM3和固件路径替换成你的实际值。erase_flash命令会清空整个闪存请确保没有重要数据。连接与测试烧录完成后使用串口工具如PuTTY、MobaXterm或VSCode的串口监视器连接板子波特率通常为115200。上电后你应该能看到MicroPython的REPL交互式解释器提示符。输入print(“Hello, Beetle C6!”)测试一切正常则环境就绪。安装必要的库MicroPython标准库包含了socket用于基础网络但为了方便我们通常使用urequests库来发起HTTP请求。这个库可能需要手动上传到板子。你可以通过mpremote工具MicroPython的远程管理工具或者使用Thonny IDE对MicroPython支持极好来上传文件。将urequests.py文件上传到板子的根目录即可。2.2 选择哪个AIGC API目前可供选择的AIGC API很多如DeepSeek、Kimi Chat、百度文心一言、阿里通义千问等。我的选择标准是文档清晰、有免费额度、调用简单。DeepSeek的API在这方面表现不错提供了比较慷慨的免费额度且其deepseek-chat模型在中文理解和生成上效果很好。因此本次实践将以DeepSeek API为例。你需要去其官方平台注册账号并创建一个API Key这个过程和大多数云服务类似此处不赘述。注意保管好你的API Key不要将它硬编码在提交到公开仓库的代码中。一个最佳实践是将其存储在板子的独立配置文件里或者通过Wi-Fi配网时输入。3. 核心实现从网络连接到智能对话一切准备就绪我们来编写核心代码。整个流程可以分解为几个模块Wi-Fi连接、构造API请求、发送请求并解析响应、错误处理。3.1 Wi-Fi连接模块这是所有网络操作的基础。我们需要编写一个可靠的连接函数包含重试机制。import network import time def connect_wifi(ssid, password): wlan network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print(‘正在连接Wi-Fi...’) wlan.connect(ssid, password) # 等待连接最多20秒 for i in range(20): if wlan.isconnected(): break print(‘.’, end‘’) time.sleep(1) if wlan.isconnected(): print(‘\nWi-Fi连接成功’) print(‘网络配置:’, wlan.ifconfig()) return True else: print(‘\nWi-Fi连接失败’) return False # 使用示例 WIFI_SSID “你的Wi-Fi名称” WIFI_PASS “你的Wi-Fi密码” connect_wifi(WIFI_SSID, WIFI_PASS)这段代码会尝试连接Wi-Fi并在连接成功后打印出板子获取到的IP地址。time.sleep(1)和循环等待是必要的因为网络握手需要时间。3.2 构造与发送API请求这是最核心的部分。我们需要按照DeepSeek API的文档来构造一个HTTP POST请求。import urequests import ujson def ask_deepseek(api_key, question): url “https://api.deepseek.com/chat/completions” headers { ‘Content-Type’: ‘application/json’, ‘Authorization’: f‘Bearer {api_key}’ } # 构造请求体一个简单的对话 payload { “model”: “deepseek-chat”, “messages”: [ {“role”: “user”, “content”: question} ], “stream”: False # 非流式响应一次性返回 } try: print(f“发送请求: {question}”) # 发送POST请求超时时间设为15秒 response urequests.post(url, headersheaders, dataujson.dumps(payload), timeout15) # 检查HTTP状态码 if response.status_code 200: # 解析JSON响应 resp_json response.json() # 提取AI回复的内容 ai_reply resp_json[‘choices’][0][‘message’][‘content’] print(f“AI回复: {ai_reply}”) response.close() # 重要关闭响应释放资源 return ai_reply else: # 处理错误 error_info response.text print(f“API请求失败状态码: {response.status_code}”) print(f“错误信息: {error_info}”) response.close() return f“错误: {response.status_code} - {error_info}” except Exception as e: print(f“请求过程中发生异常: {e}”) return f“异常: {str(e)}”代码关键点解析HeadersAuthorization头是认证的关键格式必须是Bearer {你的API_Key}。Payloadmessages字段是一个列表可以包含多轮对话历史。我们这里只发送用户当前的问题。stream设为False是为了简化处理一次性拿到完整回复。错误处理urequests可能会抛出异常如网络超时HTTP状态码也可能不是200例如400 Bad Request。我们必须捕获这些情况并给出清晰的提示。常见的400错误可能是API Key无效、模型名称不对如错误地使用了deepseek-v4-pro等非聊天模型或者请求格式错误。资源释放response.close()至关重要。MicroPython运行在资源受限的设备上不及时关闭响应体会导致内存泄漏在多次请求后可能引发内存不足的错误。3.3 整合与交互测试将上面两个模块组合起来就是一个完整的可运行脚本。# main.py import network import time import urequests import ujson # 你的配置信息 WIFI_SSID “Your_WiFi_SSID” WIFI_PASS “Your_WiFi_Password” DEEPSEEK_API_KEY “sk-your-actual-api-key-here” # 请务必妥善保管 # 引入前面定义的函数 def connect_wifi(ssid, password): # ... (同上此处省略) def ask_deepseek(api_key, question): # ... (同上此处省略) # 主程序 if __name__ “__main__”: # 1. 连接Wi-Fi if not connect_wifi(WIFI_SSID, WIFI_PASS): print(“无法连接Wi-Fi程序退出。”) # 在实际项目中这里可以进入深度睡眠或尝试重新配网 import machine machine.deepsleep(10000) # 休眠10秒 # 2. 与AI对话 print(“\n--- Beetle ESP32 C6 AIGC测试 ---”) # 测试问题列表 test_questions [ “用一句话介绍你自己。”, “ESP32是什么”, “写一首关于秋天和科技的五言绝句。” ] for q in test_questions: print(f“\n[用户]: {q}”) reply ask_deepseek(DEEPSEEK_API_KEY, q) # 这里可以添加将回复显示到OLED屏幕、通过语音播报等代码 time.sleep(2) # 每次请求间隔一下避免速率限制 print(“\n--- 测试完成 ---”)将这段代码保存为main.py通过Thonny或mpremote上传到Beetle ESP32 C6然后复位板子。在串口监视器中你应该能看到连接Wi-Fi和连续三次问答的过程。4. 实战中遇到的“坑”与解决方案理想很丰满现实往往会在细节上给你使绊子。下面是我在实现过程中遇到的几个典型问题及其解决方法。4.1 API Error 400模型名称不支持这是我最开始遇到的错误。在测试时我收到了这样的错误响应{“error”:{“message”:”The supported API model names are deepseek-v4-pro or deepseek-v4-flash”}}或者{“error”:{“message”:”The supported API model names are deepseek-v4-pro or deepseek-v4-flash”}}问题根源我最初在payload里使用的model字段是“deepseek-chat”但这个模型名可能已经更新或不在我账户的可用范围内。DeepSeek的API模型列表可能会变动免费额度支持的模型和付费支持的模型可能不同。解决方案仔细阅读官方文档去DeepSeek API文档查看当前可用的聊天完成chat completion端点支持的模型列表。使用正确的模型名对于通用的聊天交互“deepseek-chat”通常是正确的。但如果遇到上述错误可以尝试换成文档中明确列出的其他模型如“deepseek-v4-flash”如果该模型支持聊天接口。在我的案例中确保API Key有对应模型的权限并使用“deepseek-chat”最终解决了问题。检查API端点确认你调用的URL是正确的聊天补全端点/chat/completions而不是其他端点。4.2 内存不足与响应处理当AI的回复比较长时可能会遇到内存分配失败MemoryError的问题。ESP32 C6虽然有足够的RAM约320KB但urequests会将整个响应体读入内存如果回复内容长达数千字就可能撑满内存。优化策略限制回复长度在API请求参数中可以设置max_tokens来限制AI生成的最大令牌数约等于字数。例如“max_tokens”: 500这能有效控制响应大小。payload { “model”: “deepseek-chat”, “messages”: […], “stream”: False, “max_tokens”: 300 # 限制回复长度 }使用流式响应Streaming这是更优雅的解决方案。将“stream”: TrueAPI会返回一个流式事件Server-Sent Events。我们需要逐块chunk读取数据解析出有效的JSON片段。这样可以边接收边处理极大减少峰值内存占用。不过这需要更复杂的响应解析逻辑因为每个chunk可能不是完整的JSON。及时关闭和垃圾回收确保每次请求后都调用response.close()。在内存紧张时可以手动调用import gc; gc.collect()进行垃圾回收。4.3 网络稳定性与超时处理在无线网络环境下连接可能不稳定。urequests.post()的默认超时时间可能不够导致长时间等待或阻塞。加固措施显式设置超时如示例代码中所示为urequests.post设置timeout参数单位秒。我设置为15秒这是一个比较合理的值兼顾了响应时间和网络波动。实现重试机制对于非致命的网络错误如超时、连接断开可以实现一个简单的重试逻辑。def ask_deepseek_with_retry(api_key, question, max_retries3): for attempt in range(max_retries): try: return ask_deepseek(api_key, question) except OSError as e: # 网络相关异常 if attempt max_retries - 1: print(f“请求失败 ({e})第{attempt1}次重试...”) time.sleep(2 * (attempt 1)) # 指数退避 else: raise e # 重试次数用尽抛出异常检查网络连接状态在发起关键请求前可以调用wlan.isconnected()检查链路是否依然正常如果断开则尝试重连。5. 项目进阶打造一个真正的AIGC硬件终端基础的通话功能实现后我们可以把这个项目变得更实用、更有趣。这里提供几个进阶方向。5.1 增加本地输入与输出让开发板脱离电脑串口独立运行。输入接入一个按键矩阵或旋转编码器配合一个小OLED屏实现简单的菜单选择用于输入预设问题或切换模式。更高级的可以接入麦克风模块实现语音识别VAD在线ASR API但这需要更强的处理能力和更复杂的代码。输出显示使用I2C或SPI接口的OLED/液晶屏将AI的回复文字显示出来。需要注意屏幕的分辨率和字体库对于长文本需要实现滚动显示。语音接入一个简单的DAC音频模块或PWM驱动扬声器结合TTS文本转语音API将AI的文字回复转为语音播放出来瞬间变成一个简易的智能音箱雏形。灯光/动作利用板载的RGB LED或外接LED灯带可以根据AI回复的情绪或关键词通过简单的情感分析或关键词匹配改变灯光颜色和模式增加交互的趣味性。5.2 结合传感器数据这才是物联网设备的精髓——让AI理解物理世界。环境报告生成器连接温湿度传感器如DHT22、空气质量传感器如SGP30。定时采集数据然后构造一个提示词Prompt让AI生成一段描述当前环境状况的“诗意报告”或“健康提醒”。temperature, humidity read_dht22() prompt f“当前环境温度是{temperature}摄氏度湿度是{humidity}%。请用一句生动的话描述这种天气给人的感受并给出一个生活建议。” reply ask_deepseek(api_key, prompt) display_on_screen(reply) # 显示到屏幕智能告警与解释当传感器数据超过阈值如温度过高除了触发本地警报还可以将数据发送给AI让它用通俗的语言解释可能的原因和应采取的措施这比单纯的“警报”更有价值。5.3 优化功耗与长期运行如果设备需要电池供电功耗是关键。深度睡眠Deep Sleep在不需要交互时让ESP32 C6进入深度睡眠模式功耗可以降至微安级别。可以通过定时器Timer Wake-up或外部引脚Ext0/Ext1 Wake-up唤醒。例如每小时唤醒一次采集传感器数据并生成报告然后继续睡眠。Wi-Fi连接管理每次唤醒后重新连接Wi-Fi会消耗较多时间和能量。如果间隔时间不长可以考虑保持连接但需要处理可能发生的断线。对于长时间间隔每次唤醒后连接、请求、断开是更常见的模式。API调用频率合理规划调用AI API的频率避免不必要的请求既能节省云端token也能降低设备功耗。6. 安全与成本考量将API Key放在嵌入式设备中安全风险不容忽视。密钥存储绝对不要将API Key明文写在代码里。可以将其存储在板子文件系统的一个独立配置文件中如config.json首次使用时通过串口或网页配网界面输入并保存。更安全的方式是使用设备的唯一标识符如MAC地址向自己的服务器请求临时令牌由服务器保管主密钥。请求频率限制免费的API通常有每分钟/每天的调用次数限制。在代码中加入简单的限流逻辑比如使用time.time()记录上次调用时间确保间隔大于某个值避免意外刷爆额度导致服务被临时禁用。成本监控即使是免费额度也要注意请求的max_tokens参数因为它直接影响token消耗。对于长期运行的项目建议在云端API控制台设置预算告警。通过Beetle ESP32 C6调用AIGC API我们成功地将强大的云端AI能力赋予了这个小巧的硬件设备。从环境搭建、代码编写到问题排查和进阶思考整个过程是一次典型的物联网应用开发实践。它证明了在边缘设备上实现“智能交互”并非难事关键在于如何将云端的智能与本地硬件的数据采集、执行能力有机结合。希望这篇详细的踩坑记录和实现思路能为你开启自己的硬件AIGC项目提供扎实的参考。下一步不妨试着给你的ESP32加上一块屏幕和几个传感器看看它能为你创造出什么有趣的应用吧。

相关新闻

3步掌握前端面试:Front End Interview Handbook终极指南 [特殊字符]

3步掌握前端面试:Front End Interview Handbook终极指南 [特殊字符]

3步掌握前端面试:Front End Interview Handbook终极指南 🚀 【免费下载链接】front-end-interview-handbook Front End interview preparation materials for busy engineers (updated for 2026) 项目地址: https://gitcode.com/GitHub_Trending/fr/fr…

2026/7/28 7:09:55阅读更多 →
解决Git并发冲突:git-remote-s3的per-reference locking机制详解

解决Git并发冲突:git-remote-s3的per-reference locking机制详解

解决Git并发冲突:git-remote-s3的per-reference locking机制详解 【免费下载链接】git-remote-s3 项目地址: https://gitcode.com/gh_mirrors/git/git-remote-s3 在多人协作的Git项目中,并发推送代码到同一分支时,常常会遇到令人头疼…

2026/7/28 7:09:55阅读更多 →
Python入门实战:从零开发简易计算器

Python入门实战:从零开发简易计算器

1. 为什么选择计算器作为Python入门项目作为编程初学者,第一个实战项目的选择至关重要。计算器之所以成为经典入门项目,是因为它完美涵盖了编程基础要素:变量、运算符、条件判断、循环和函数。一个简易计算器项目能让你在100行代码内实践这些…

2026/7/28 7:07:55阅读更多 →
Workflower常见问题解决:从安装错误到流程异常的排查指南

Workflower常见问题解决:从安装错误到流程异常的排查指南

Workflower常见问题解决:从安装错误到流程异常的排查指南 【免费下载链接】workflower A BPMN 2.0 workflow engine for PHP 项目地址: https://gitcode.com/gh_mirrors/wo/workflower 一、快速定位Workflower核心问题 Workflower作为PHP生态中轻量级的BPMN…

2026/7/28 8:24:08阅读更多 →
Pytest conftest.py层级管理与fixture覆盖规则详解

Pytest conftest.py层级管理与fixture覆盖规则详解

1. 项目概述:为什么需要管理 conftest.py 的层级?在任何一个稍具规模的 pytest 项目中,你迟早会遇到一个头疼的问题:conftest.py文件开始像野草一样在项目的各个角落生长。根目录有一个,某个核心模块的目录下有一个&am…

2026/7/28 8:24:08阅读更多 →
reCAPTCHA Validator for Laravel 5入门:从安装到配置的完整教程

reCAPTCHA Validator for Laravel 5入门:从安装到配置的完整教程

reCAPTCHA Validator for Laravel 5入门:从安装到配置的完整教程 【免费下载链接】recaptcha [ABANDONED] reCAPTCHA Validator for Laravel 5 项目地址: https://gitcode.com/gh_mirrors/reca/recaptcha reCAPTCHA Validator for Laravel 5是一款专为Larave…

2026/7/28 8:24:08阅读更多 →
终极指南:reCAPTCHA V2 vs V1 如何为 Laravel 5 项目选择最佳验证方案

终极指南:reCAPTCHA V2 vs V1 如何为 Laravel 5 项目选择最佳验证方案

终极指南:reCAPTCHA V2 vs V1 如何为 Laravel 5 项目选择最佳验证方案 【免费下载链接】recaptcha [ABANDONED] reCAPTCHA Validator for Laravel 5 项目地址: https://gitcode.com/gh_mirrors/reca/recaptcha 在当今数字时代,网站安全至关重要&a…

2026/7/28 8:24:08阅读更多 →
llama.cpp多模态AI:本地视频音频输入完整指南

llama.cpp多模态AI:本地视频音频输入完整指南

llama.cpp 作为本地大模型推理的轻量级解决方案,近期在多媒体输入能力上有了重要突破。很多人可能还不知道,这个原本专注于文本处理的工具现在已经支持视频和音频输入,让用户能够在普通硬件上体验类似 Gemma 4 的多模态理解能力。这次更新最值…

2026/7/28 8:24:08阅读更多 →
提升Blur渲染速度:GPU加速与多线程优化的实用配置指南

提升Blur渲染速度:GPU加速与多线程优化的实用配置指南

提升Blur渲染速度:GPU加速与多线程优化的实用配置指南 【免费下载链接】blur Add motion blur to videos 项目地址: https://gitcode.com/gh_mirrors/bl/blur Blur是一款强大的视频运动模糊处理工具,能够为视频添加自然流畅的运动模糊效果。然而&…

2026/7/28 8:22:08阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →