连接阿里云通义千问大模型,小白不会英文全中文注释,

登录阿里云
在这里插入图片描述
创建一个阿里访问的秘钥
在这里插入图片描述


```cpp
#include <WiFi.h>             // 包含 WiFi 库
#include <HTTPClient.h>       // 包含 HTTP 客户端库
#include <ArduinoJson.h>      // 包含 ArduinoJson 库
/******************************************************** */
// 定义 Wi-Fi 名与密码
// WiFi 账号密码
const char* ssid = "CU_Dbhf";  
const char* password = "3ssh7pgq";  

//wifi初始化
void WIFI_init(){
  // 断开之前的连接
  WiFi.disconnect(true);
  // 连接 Wi-Fi
  WiFi.begin(ssid, password);

  Serial.print("正在连接 Wi-Fi");

  // 检测是否链接成功
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
  Serial.println("连接成功");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

}
/******************************************* */
// 2. 替换为你的阿里云 DashScope API 密钥   测试代码不用动直接粘贴秘钥就行,全部程序只需要改这个地方就行,还有WiFi
const char* apiKey = "******************";

// 发送给阿里云 DashScope API 的请求
String inputText = "你好,写一个我不能反驳的笑话!";  // 输入文本
String apiUrl = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation";  // API URL

String answer;  // 用于存储答案

// 获取 GPT 回答的函数
String getGPTAnswer(String inputText) {
  HTTPClient http;  // 创建 HTTP 客户端实例
  http.setTimeout(10000);  // 设置超时时间为 10 秒
  http.begin(apiUrl);  // 初始化 HTTP 请求
  http.addHeader("Content-Type", "application/json");  // 添加 Content-Type 请求头
  http.addHeader("Authorization", String(apiKey));  // 添加 Authorization 请求头

  // 构建 JSON 负载
  String payload = "{\"model\":\"qwen-turbo\",\"input\":{\"messages\":[{\"role\": \"system\",\"content\": \"你是小白机器人生活助理,要求下面的回答严格控制在256字符以内。\"},{\"role\": \"user\",\"content\": \"" + inputText + "\"}]}}";

  int httpResponseCode = http.POST(payload);  // 发送 POST 请求

  if (httpResponseCode == 200) {  // 如果响应码为 200
    String response = http.getString();  // 获取响应字符串
    http.end();  // 结束 HTTP 连接
    // Serial.println(response);  // 打印响应
    //Serial.printf("服务器回应\r\n");
    /* 解析 JSON 响应
    	         
      output		{2}
                finish_reason	:	stop
                text	:	我是星辰生活助手机器人,专门提供日常生活和学习的帮助与解答。
      usage		{3}
                total_tokens	:	52
                output_tokens	:	17
                input_tokens	:	35
                request_id	:	d3555140-8a3e-9fde-a1f2-b42311e92695

    */
    DynamicJsonDocument jsonDoc(1024);  // 创建动态 JSON 文档
    deserializeJson(jsonDoc, response);  // 反序列化 JSON 字符串
    String outputText = jsonDoc["output"]["text"];  // 提取输出文本
    return outputText;  // 返回文本
  } else {  // 如果响应码不是 200
    http.end();  // 结束 HTTP 连接
    Serial.printf("Error %i \n", httpResponseCode);  // 打印错误信息
    return "<error>";  // 返回错误标记
  }
}
/******************************************************************************************************* */
void setup() {
  // 初始化串行通信
  Serial.begin(9600);

  // 连接到 Wi-Fi 网络
   WIFI_init();

  // 获取并打印初始回答
  answer = getGPTAnswer(inputText);
  Serial.println("小白回应: " + answer);
  Serial.println("请输入 :");  // 提示用户输入
}

void loop() {
  // 主循环
  if (Serial.available()) {  // 如果串口有可用数据
    inputText = Serial.readStringUntil('\n');  // 读取一行文本
   // Serial.println("\n Input:" + inputText);  // 打印输入

    // 获取并打印回答
    answer = getGPTAnswer(inputText);
    Serial.println("小白回应: " + answer);
    Serial.println("请输入  :");  // 提示用户再次输入
  }
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aded218a033247a0aab61f48a463346c.png)

我用其他串口助手调试会出现乱码,不知道是什么问题,用vsvode就没有问题, 请求大神指点一下
文章参考https://blog.csdn.net/vor234/article/details/135395143
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白文化

求大佬打赏;

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值