赞
踩
视频讲解:
【ESP32接入国产大模型之文心一言】
【ESP32接入国产大模型之MiniMax】
【ESP32接入语言大模型之智谱清言】
【ESP32接入国产大模型之文心一言】
【ESP32接入语言大模型之通义千问】
下面是不标准测评,参考而已
模型 | 响应时间 | 内容质量 | 免费token次数 | 地址 |
---|---|---|---|---|
MiniMax | 3s | 8分 | 500万 | https://www.minimaxi.com/ |
智谱清言 | 7s | 8分 | 300万 | https://open.bigmodel.cn/ |
文心一言 | 10s | 9分 | 500万 | https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu |
通义千问 | 8s | 8分 | 800万 | https://tongyi.aliyun.com/qianwen/ |
随着人工智能技术的不断发展,自然语言处理领域也得到了广泛的关注和应用。在这个领域中,文心一言作为一款强大的自然语言处理工具,具有许多重要的应用价值。本文将重点介绍如何通过ESP32接入国产大模型之文心一言api,以及其中的重点词汇或短语。
文心一言是百度打造出来的人工智能大语言模型,具备跨模态、跨语言的深度语义理解与生成能力,文心一言有五大能力,文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成,其在搜索问答、内容创作生成、智能办公等众多领域都有更广阔的想象空间。文心一言企业服务由千帆大模型平台提供,包括推理服务及大模型微调等一系列开发和应用工具链。文心一言大模型现已升级至4.0,企业客户可通过百度智能云千帆大模型平台申请接入。
API 列表
百度智能云千帆平台提供了丰富的API,保留对话Chat、续写Completions、向量Embeddings、插件应用、Prompt工程、大模型训练、管理及服务等API能力,详情请查看API列表。
- 对话Chat:支持创建chat,用于发起一次对话。
- 续写Completions:支持创建completion,用于发起一次续写请求,不支持多轮会话等。
- 向量Embeddings:支持Embeddings,用于根据输入内容生成对应的向量表示。
- 自定义模型导入:支持HuggingFace Transformer架构的自定义模型导入,提供自定义模型导入相关API能力。
- 图像Images:提供图像相关API能力。
API 的调用流程如下图所示。
(1)登录百度智能云千帆控制台。
请您注册并登录百度智能云千帆控制台 。
注意:为保障服务稳定运行,账户最好不处于欠费状态。
(2)创建千帆应用
进入控制台创建应用 。
(3)创建应用后,获取AppID、API Key、Secret Key。
应用创建后,选择对应授权的公有云服务。
调用千帆提供的相关接口,如ERNIE-Bot等,详见API列表。
在线调试
百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍。
获取AccessToken
应用列表选择自己创建的《ESP32语音聊天助手》,采用C#示例代码,
然后点击调试,复制获取的AccessToken:24.7cc213f615669e6191cf3f65fad26ed2.2592000.1706881758.282335-46332156
1处粘贴上面的AccessToken,在2处中括号中输入
“role”:“user”,“content”:“介绍一下你自己”
调试结果如下
查看C#代码需要三部分代码
"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=24.7cc213f615669e6191cf3f65fad26ed2.2592000.1706881758.282335-46332156"
"Content-Type", "application/json"
"{""messages"":[{""role"":""user"",""content"":""介绍一下你自己""},{""role"":""assistant"",""content"":""您好,我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。""}],""disable_search"":false,""enable_citation"":false}"
在继续此项目之前,请确保检查以下先决条件。
我们将使用 Arduino IDE 对 ESP32/ESP8266 开发板进行编程,因此在继续本教程之前,请确保已在 Arduino IDE 中安装这些开发板。
要学习本教程,您需要1个 ESP32 开发板(推荐硬件,请不要使用esp8266,问就是不行)。
简约版需要设置CDC下载,经典版直接下载
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"; // Replace with your OpenAI API key // const char* apiKey = "1CeoUoYgnfc6s5liNR2uoQrk"; // const char* secret_Key = "G3n9aHVerzGqr0EWsLnca0fVkiXI9BVz"; //const char* access_token = "24.01bb97173188a1a22d6a6991918f6508.2592000.1706880634.282335-46332156"; // Send request to OpenAI API String inputText = "你好,文心一言"; // 2. Replace with your access_token String apiUrl = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=24.23087285c9ab53cbfd7aad5c032ae371.2592000.1706878581.282335-46332156"; String answer; String getGPTAnswer(String inputText) { HTTPClient http; http.setTimeout(10000); http.begin(apiUrl); http.addHeader("Content-Type", "application/json"); // http.addHeader("access_token", String(access_token)); String payload = "{\"messages\":[{\"role\": \"user\",\"content\": \"" + inputText + "\"}],\"disable_search\": false,\"enable_citation\": false}"; int httpResponseCode = http.POST(payload); if (httpResponseCode == 200) { String response = http.getString(); http.end(); Serial.println(response); // Parse JSON response DynamicJsonDocument jsonDoc(1024); deserializeJson(jsonDoc, response); String outputText = jsonDoc["result"]; return outputText; // Serial.println(outputText); } else { http.end(); Serial.printf("Error %i \n", httpResponseCode); return "<error>"; } } void setup() { // Initialize Serial Serial.begin(115200); // Connect to Wi-Fi network WiFi.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 nothing if (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>:用于处理Wi-Fi连接功能。
#include <HTTPClient.h>:用于发送HTTP请求。
#include <ArduinoJson.h>:用于解析从服务器返回的JSON格式数据。
const char* ssid = "J09 502";:Wi-Fi网络名。
const char* password = "qwertyuiop111";:Wi-Fi网络密码。
String apiUrl = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=24.23087285c9ab53cbfd7aad5c032ae371.2592000.1706878581.282335-46332156";
注意:虽然代码中有OpenAI API相关注释,但实际上该代码是针对百度文心一言API编写的。如果你想要与OpenAI
API交互,你需要使用OpenAI提供的API URL、access token及相应的JSON结构进行请求。
打开串口监视器,注意右下角选择换行符,选择115200波特率,输入你想问的问题,他就可以回答你
如果返回error ,大家对照列表查询错误代码,结合提示排查解决
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。