天津做艺术品的网站,给公司做网站要多少钱,wordpress火车头采集软件发布接口,一个简单网页的代码1. 通义千问
讲解视频#xff1a; ESP32接入语言大模型之通义千问 随着人工智能技术的不断发展#xff0c;自然语言处理领域也得到了广泛的关注和应用。通义千问由阿里云开发#xff0c;目标是帮助用户获得准确、有用的信息#xff0c;解决他们的问题和困惑#xff0c;也…1. 通义千问
讲解视频 ESP32接入语言大模型之通义千问 随着人工智能技术的不断发展自然语言处理领域也得到了广泛的关注和应用。通义千问由阿里云开发目标是帮助用户获得准确、有用的信息解决他们的问题和困惑也可以回答各种问题提供定义、解释和建议或者与用户进行对话、创造内容、翻译文本等等。本文将重点介绍如何通过ESP32接入国产大模型之通义千问api。 通义千问官网地址https://tongyi.aliyun.com/qianwen/ 上一篇博客已经分享了【ESP32接入国产大模型之文心一言】这一次Arduino编程就会轻松许多开发。这样就可以把大模型装进口袋啦
1.1 了解通义千问api 通义千问模型支持用户以文本形式的指令prompt以及不定轮次的对话历史history作为输入并基于这些信息生成回复作为输出。在这一过程中文本将被转换为语言模型可以处理的token序列。Token是模型用来表示自然语言文本的基本单位可以直观地理解为“字”或“词”。对于中文文本来说1个token通常对应一个汉字对于英文文本来说1个token通常对应3至4个字母或1个单词。例如中文文本“你好我是通义千问”会被转换成序列[‘你’, ‘好’, ‘’, ‘我’, ‘是’, ‘通’, ‘义’, ‘千’, ‘问’]而英文文本Nice to meet you.则会被转换成[‘Nice’, ’ to’, ’ meet’, ’ you’, ‘.’]。 api简介 通义千问需要通过阿里云主账号或者得到主账号AliyunDashScopeFullAccess授权的子账号进行DashScope模型服务的开通及API-KEY的创建。然后就可以通过匹配的请求访问通义千问进而得到想要的答复。
1.2 开通DashScope灵积模型服务
访问DashScope管理控制台前往控制台。 在控制台“总览”页下点击“去开通”。 阅读服务协议确认无误后点击“立即开通”。 1.3 创建API-KEY
访问DashScope管理控制台API-KEY管理页面前往API-KEY管理然后点击“创建新的API-KEY”。 点击“创建新的API-KEY”后系统会创建生成API-KEY并在弹出的对话框中展示此处客户可以点击复制按钮将API-KEY的内容复制保存。 复制并在安全的地方保存API-KEY后点击“我已保存关闭”按钮则弹窗关闭此次创建的API-KEY可立即用于调用DashScope模型服务API对API-KEY的后续操作均可在当前的API-KEY管理页面进行。 重要提示出于安全考虑关闭弹窗后您可以在API-KEY管理通过账号验证的方式再次查看API-KEY。 1.4 API 模型调用
如果您熟悉编程语言推荐您使用SDK或API调用通义千问模型实现灵活定制和开发。
1.4.1 模型概览
模型名称模型简介模型输入/输出限制qwen-turbo通义千问超大规模语言模型支持中文、英文等不同语言输入。模型支持8k tokens上下文为了保证正常的使用和输出API限定用户输入为6k tokens。qwen-plus通义千问超大规模语言模型增强版支持中文、英文等不同语言输入。模型支持32k tokens上下文为了保证正常的使用和输出API限定用户输入为30k tokens。qwen-max限时免费开放中通义千问千亿级别超大规模语言模型支持中文、英文等不同语言输入。随着模型的升级qwen-max将滚动更新升级如果希望使用稳定版本请使用qwen-max-1201。模型支持8k tokens上下文为了保证正常的使用和输出API限定用户输入为6k tokens。qwen-max-1201限时免费开放中通义千问千亿级别超大规模语言模型支持中文、英文等不同语言输入。该模型为qwen-max的快照稳定版本预期维护到下个快照版本发布时间待定后一个月。模型支持8k tokens上下文为了保证正常的使用和输出API限定用户输入为6k tokens。qwen-max-longcontext限时免费开放中通义千问千亿级别超大规模语言模型支持中文、英文等不同语言输入。模型支持30k tokens上下文为了保证正常的使用和输出API限定用户输入为28k tokens。
大家根据自己的需要选择函数模型
1.4.2 HTTP调用接口 功能描述通义千问模型同时支持 HTTP 调用来完成客户的响应目前提供普通 HTTP 和 HTTP SSE 两种协议您可根据自己的需求自行选择。 前提条件已开通服务并获得API-KEY开通DashScope并创建API-KEY。 提交接口调用POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation 请求参数Content-Type/Authorization/model/input.prompt 是必须要的 出参描述
1.4.3 请求案例
以下示例展示通过CURL命令来调用通义千问模型的脚本SSE 关闭。
curl --location https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
--header Authorization: Bearer your-dashscope-api-key \
--header Content-Type: application/json \
--data {model: qwen-turbo,input:{messages:[ {role: system,content: You are a helpful assistant.},{role: user,content: 你好哪个公园距离我最近}]},parameters: {}
}响应示例SSE关闭 result_format参数为text的时候的输出结果
{output:{text:如果你在中国我推荐你去北京的颐和园 ... ... 适合散步和欣赏景色。,finish_reason:stop },usage:{output_tokens:380,input_tokens:633},request_id:d89c06fb-46a1-47b6-acb9-bfb17f814969
}2. 先决条件
在继续此项目之前请确保检查以下先决条件。
我们将使用 Arduino IDE 对 ESP32/ESP8266 开发板进行编程因此在继续本教程之前请确保已在 Arduino IDE 中安装这些开发板。
2.1 环境配置
Arduino IDE下载并安装 Arduino IDEESP32 开发板库在 Arduino IDE 中添加 ESP32 支持 参考博客【esp32c3配置arduino IDE教程】 为安装过程留出一些时间具体时间可能因您的互联网连接而异。
2.2 所需零件
要学习本教程您需要1个 ESP32 开发板或者ESP32C3建议使用后者笔者发现同样的代码后者可以轻松调用ESP32不行可能板子坏了。
1 x ESP32阅读最佳 ESP32开发板)1 x ESP32C3(实惠的Arduino开发板——合宙ESP32C3)
3. 核心代码
esp32 Arduino代码如下
#include WiFi.h
#include HTTPClient.h
#include ArduinoJson.h// 1. Replace with your network credentials
const char* ssid J09 502;
const char* password qwertyuiop111;// 2. Replace with your OpenAI API key
const char* apiKey sk-6af87778d25f43a7874aa0d9b9e9f1f1;// Send request to OpenAI API
String inputText 你好通义千问;
String apiUrl https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation;String answer;
String getGPTAnswer(String inputText) {HTTPClient http;http.begin(apiUrl);http.addHeader(Content-Type, application/json);http.addHeader(Authorization, String(apiKey));String payload {\model\:\qwen-turbo\,\input\:{\messages\:[{\role\: \system\,\content\: \你是鹏鹏的生活助手机器人要求下面的回答严格控制在256字符以内。\},{\role\: \user\,\content\: \ inputText \}]}};int httpResponseCode http.POST(payload);if (httpResponseCode 200) {String response http.getString();http.end();Serial.println(response);// Parse JSON responseDynamicJsonDocument jsonDoc(1024);deserializeJson(jsonDoc, response);String outputText jsonDoc[output][text];return outputText;// Serial.println(outputText);} else {http.end();Serial.printf(Error %i \n, httpResponseCode);return error;}
}void setup() {// Initialize SerialSerial.begin(115200);// Connect to Wi-Fi networkWiFi.mode(WIFI_STA);WiFi.begin(ssid, password);Serial.print(Connecting to WiFi ..);while (WiFi.status() ! WL_CONNECTED) {Serial.print(.);delay(1000);}Serial.println(WiFi.localIP());answer getGPTAnswer(inputText);Serial.println(Answer: answer);Serial.println(Enter a prompt:);}void loop() {// do nothingif (Serial.available()) {inputText Serial.readStringUntil(\n);// inputText.trim();Serial.println(\n Input:inputText);answer getGPTAnswer(inputText);Serial.println(Answer: answer);Serial.println(Enter a prompt:);}// delay(2);
}
这段代码是一个基于Arduino平台可能是ESP32或ESP8266的示例它通过WiFi连接到指定的无线网络并利用HTTPClient库向百度文心一言API发送POST请求以获取AI生成的回答。以下是详细的解释
导入必要的库
#include WiFi.h
#include HTTPClient.h
#include ArduinoJson.h
第一处修改定义Wi-Fi网络凭证
const char* ssid J09 502;
const char* password qwertyuiop111;第二处修改定义要调用的APIkey
const char* apiKey sk-6af87778d25f43a7874aa0d9b9e9f1f1;定义输入文本和函数 getGPTAnswer(String inputText)
输入文本是固定的问候语你好文通义千问在实际应用中可以根据需要修改。函数 getGPTAnswer() 负责执行以下操作 初始化HTTPClient对象并设置目标URL。设置Content-Type头信息构造请求体payload将用户输入的内容添加到JSON结构中。发送POST请求并检查HTTP响应码。如果响应码为200则读取并解析返回的JSON数据提取出结果字段作为回答。若非200则返回错误字符串 “”。
setup() 函数
初始化串口通信 连接到指定的Wi-Fi网络。连接成功后获取一个初始的回答并打印出来然后提示用户输入新的问题。
loop() 函数
检查串口是否有可用的数据输入。如果有新输入读取一行内容调用 getGPTAnswer() 函数获取AI回答并将对话过程输出到串口。 注意虽然代码中有OpenAI API相关注释但实际上该代码是针对通义千问API编写的。如果你想要与OpenAI API交互你需要使用OpenAI提供的API URL、access token及相应的JSON结构进行请求。 4. 上传验证
打开串口监视器输入你想问的问题他就可以回答你
4.1 对话测试 4.2 报错
如果返回error 大家对照列表查询错误代码结合提示排查解决
5. 总结
现在我们在本教程中您学习了如何使用ESP32接入语言大模型之通义千问。从而实现对外部世界进行感知充分认识这个有机与无机的环境后期会持续分享esp32跑freertos实用案列科学地合理地进行创作和发挥效益然后为人类社会发展贡献一点微薄之力。
如果你有任何问题可以通过下面的二维码加入鹏鹏小分队期待与你思维的碰撞