| 
 
 2011| 0
 
 | 
[ESP8266/ESP32] FireBeetle 2 ESP32 C6+ ChatGPT问答 | 
| 
 一、 概要 FireBeetle 2 ESP32-C6是一款基于ESP32-C6芯片设计的低功耗物联网开发板,适用于智能家居项目。ESP32-C6搭载160MHz的高性能RISC-V32位处理器,支持Wi-Fi 6、Bluetooth 5、Zigbee 3.0、Thread 1.3通讯协议,可接入多种通讯协议的物联网网络。 ChatGPT是一种基于人工智能技术的大型语言模型,它利用深度学习和自然语言处理技术来模拟人类的对话过程。ChatGPT是由OpenAI公司开发并训练的,它拥有强大的语言理解和生成能力,可以与用户进行流畅、自然的对话。ChatGPT的主要功能包括回答各种类型的问题、提供相关的知识和信息、参与闲聊和对话等。它可以根据用户的输入生成连贯、富有逻辑的回复,并且能够理解和识别上下文信息,从而进行更加精准的回答和对话。 该项目使用FireBeetle 2 ESP32-C6作为移动端,向服务器端发送问答请求;服务器端接受请求,并且调用ChatGPT接口,处理问题,返回到移动端。 一、 现环境 编程语言:MicroPython IDE:Thonny PyCharm 首先配置开发板,加载主控核心。 ![]() 开发板烧录,执行点灯。 ![]() 一、 实现代码 移动端: 1.WiFi模块: def do_connect():     wlan = network.WLAN(network.STA_IF)  # 创建一个WLAN对象     wlan.active(True)  # 激活WLAN     if not wlan.isconnected():  # 如果未连接WiFi         print('正在连接WiFi...')         wlan.connect(WiFi_name, WiFi_key)  # 连接WiFi         i = 1         while not wlan.isconnected():  # 等待WiFi连接成功             print("正在连接...{}".format(i))             i += 1             time.sleep(1)     print('网络配置:', wlan.ifconfig()) # 输出网络配置信息 2.编码模块: def url_encode(s):     encoded = ''     for char in s:         if ord(char) > 127:            encoded +=''.join('%{:02X}'.format(b) for b in char.encode('utf-8'))         else:             encoded += char     return encoded 3.请求模块: defsend_request(query):     # 验证query是否合法(这里假设query不能为空,具体的验证逻辑根据实际情况设定)     if not query:       return '查询参数不能为空'     s = url_encode("你是谁,能介绍一下石家庄吗")     # 发送 HTTP POST 请求     x = urequests.get('http://你的服务器地址/query?question='+s )     # 更清晰的条件判断语句     if x.status_code == 200:          return x.text     else:      # 返回更具体的错误信息          return f'请求失败,请检查您的网络{x.status_code}:{x.reason}' 注:由于某些原因,现在无法在Thonny控制台输入中文,进行问答;目前只能在代码中写出所要提问的问题。 服务器端: Python+Flask框架 OpenAI处理模块: classOpenaiChatModule:     def __init__(self, openai_api_key):         self.openai_api_key = openai_api_key         self.origin_model_conversation = [             {"role":"system", "content": "你是用户user的好朋友,名字叫钢蛋儿,能够和user进行愉快的交谈。"}     def chat_with_origin_model(self, text):         openai.api_key = self.openai_api_key         text = text.replace('\n', '').replace('\r', '').strip()         if len(text) == 0:             return         # print(f'chatGPT Q:{text}')        self.origin_model_conversation.append({"role": "user","content": text})         response =openai.ChatCompletion.create(             model="gpt-3.5-turbo",             # model="gpt-4",            messages=self.origin_model_conversation,             max_tokens=2048,             temperature=0.3,         )         reply =response.choices[0].message.content         reply = reply.replace('\n','').replace('\r', '')        self.origin_model_conversation.append({"role":"assistant", "content": reply})         return reply 接收请求+返回移动端内容: @app.route('/query',methods=['post','get']) def hello_world():     question = request.args.get('question')     print("-------", question)     res =openai_chat_module.chat_with_origin_model(question + '30字以内') return res 四、 运行效果 ![]() ![]()  | 
 沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed