nodejs文心一言API接入

需求

在nodejs里面接入文心一言API,官方调用步骤API介绍 - 千帆大模型平台 | 百度智能云文档

大致流程

创建应用——>API授权——>获取访问凭证——>调用接口

创建应用

注册账号创建应用

首先注册百度云智能账号,登录进入百度智能云千帆控制台 ,然后进入控制台创建应用 。

创建应用,我乱输入的。。。

获取AppID、API Key、Secret Key

API授权

应用创建成功后,千帆平台默认为应用开通所有API调用权限,无需申请授权。当然你也可以停止某些接口

怎么调用API

官方API文档API列表 - 千帆大模型平台 | 百度智能云文档,选择你想要调用的API,我这里以

ERNIE-Bot模型为例

选择合适的接口

官方文档的模型广场有,各模型的描述,然后选择合适的模型调用即可。注意这里使用付费模型的话需要保证账户有余额。刚注册官方好像会赠送优惠券,可以直接抵扣。后续需要自己充值。

在线测试

千帆平台提供在线测试功能,可以在线检验平台创建模型的精确性和反应效果。以下文档有详细介绍体验中心 - 千帆大模型平台 | 百度智能云文档,在体验中心选择你想要测试的模型即可

模型介绍

点击创建chat后可以看到调用接口的方式

在线调试平台示例代码

点击API在线调试平台-示例代码,选择你自己使用的语言调试即可

代码

以下封装的函数测试了3个模型Qianfan-Chinese-Llama-2-13B 模型 、 CodeLlama-7b-Instruct模型、ERNIE-Bot 模型,当然首先要获取access_token,具体获取方法我就不介绍了,参考官方API获取即可。

// 访问模型服务
const axios = require("axios");
const app_id = process.env.WX_APPID //文心一言appid,填你自己的appid
const secret_key = process.env.WX_SECRETKEY //文心一言secretKey,填你自己的secret_key
const api_key = process.env.WX_APIKEY //文心一言apiKey,填你自己的api_key

// 获取 access_token
function getAccessToken() {
    return new Promise((resolve, reject) => {
        axios({
            method: 'POST',
            url: 'https://aip.baidubce.com/oauth/2.0/token',
            headers: {
                'Content-Type': 'application/json',
            },
            params: {
                'grant_type': 'client_credentials',
                'client_id': api_key,
                'client_secret': secret_key,
            },
        })
        .then((response) => {
            // 在 Promise 成功时返回 access_token
            resolve(response.data.access_token);
        })
        .catch((error) => {
            // 在 Promise 失败时返回错误
            reject(error);
        });
    });
}
//文星一言  Qianfan-Chinese-Llama-2-13B 模型   免费 

 function  llamaModel(contentValue,access_token){
    return new Promise(async (resolve, reject) => {
        try {
            const response = await axios({
                method: 'POST',
                url: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/qianfan_chinese_llama_2_13b',
                headers: {
                    'Content-Type': 'application/json',
                },
                data: {
                    messages: [{
                        role: 'user',
                        content: contentValue,
                    }],
                },
                params: {
                    access_token: access_token,
                },
            });
            console.log('啦啦啦', response.data.result);
            resolve(response.data.result);
        } catch (error) {
            console.error('Error:', error.message);
            reject(error);
        }
    });
    
}


//文心一言  CodeLlama-7b-Instruct 模型免费    
function  instructModel(contentValue,access_token){
    return new Promise(async (resolve, reject) => {
        try {
            const res = await axios({
                method: 'POST',
                url: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct',
                headers: {
                    'Content-Type': 'application/json',
                },
                params: {
                    access_token: access_token,
                },
                data: {
                    prompt: contentValue,
                    // Add other parameters as needed
                },
            });
    
            console.log('啦啦啦', res.data.result);
            resolve(res.data.result);
        } catch (error) {
            console.error('Error:', error.message);
            reject(error);
        }
    });
    
}

//文星一言  ERNIE-Bot 模型  付费 
function erniebotModel(contentValue,access_token){
    return new Promise(async (resolve, reject) => {
        try {
            const res = await axios({
                method: 'POST',
                url: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions',
                headers: {
                    'Content-Type': 'application/json',
                },
                params: {
                    access_token: access_token,
                },
                data: {
                    messages: [{
                        role: 'user',
                        content: contentValue,
                    }],
                },
            });
    
            console.log('啦啦啦', res.data.result);
            resolve(res.data.result);
        } catch (error) {
            console.error('Error:', error.message);
            reject(error);
        }
    });
    
}


// 访问讯飞星火 API 的方法
async function getWXApi(contentValue) {
    try {
        const access_token = await getAccessToken();
        console.log('拿到token', access_token);

        //使用 CodeLlama-7b-Instruct 模型
        const result = await instructModel(contentValue, access_token);

        //使用 Qianfan-Chinese-Llama-2-13B 模型
        // const result = await llamaModel(contentValue, access_token);

        //使用 ERNIE-Bot 模型 模型
        // const result = await  erniebotModel(contentValue, access_token);
       

    } catch (error) {
        console.error('Main Error:', error.message);
    }
    
}
  // 导出 initUrl 函数
module.exports = getWXApi;
  

记录一下。。。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/281636.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

12.30_黑马数据结构与算法笔记Java

目录 320 全排列无重复 Leetcode47 321 组合 Leetcode77 分析 322 组合 Leetcode77 实现 323 组合 Leetcode77 剪枝 324 组合之和 Leetcode 39 325 组合之和 Leetcode 40 326 组合之和 Leetcode 216 327 N皇后 Leetcode51-1 328 N皇后 Leetcode51-2 329 解数独 Leetco…

STM32入门教程-2023版【3-2】使用库函数点亮GPIO灯

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 二、正式点亮一个LED灯 (3)使用库函数点亮GPIO灯 RCC初始化 首先用的是&…

python2.x编码Unicode字符串

1 python2.x编码Unicode字符串 python2.x默认编码方法为ASCII码。字符串赋值时按系统默认编码自动编码,通过decode()方法解码为Unicode,再通过encode()方法编码为指定码。 1.1 编码解码基础知识 1.1.1 位 位(bit)是计算机存储数据的最小单位&#xf…

基于PHP的高校学生宿舍信息系统

有需要请加文章底部Q哦 可远程调试 基于PHP的高校学生宿舍系统 一 介绍 此学生宿舍信息系统基于原生PHP开发,数据库mysql,前端jquery.js。系统角色分为学生,辅导员和宿管员。(附带配套设计文档) 技术栈:phpmysqljquery.jsphpstu…

段永平浙江大学捐赠;合计超10亿元;OpenAI 年收超16亿美元;邻汇吧5000万元C+轮融资

投融资 • 「邻汇吧」完成5000万元C轮融资,安吉政府产业基金投资• 投资者预计明年黄金价格或将创新高• 至臻云完成 A 轮数千万元融资 大模型 • ChatGPT 产品增长强劲 OpenAI 年化收入超 16 亿美元• 周鸿祎:明年大模型一方面追求“大”&#xff0c…

超真实随身WiFi测评,你确定不看一下?随身WiFi靠谱吗? 看完这篇文章你就懂了?随身WiFi真实评测

用了一年多的格行随身wifi,屏幕都磨花了。直接看图,都是自己实测! 设备是去年买的,到现在也快1年了,一直有朋友蹲后续,现在把后续给大家!到底是大牌子,确定是不跑路的随身wifi&…

解决基于VectorGrid的矢量瓦片Y轴偏移的问题

目录 前言 一、GeoServer的瓦片 1、GeoWebcache缓存配置 2、矢量瓦片本地缓存 3、瓦片访问 二、VectorGrid加载本地瓦片 1、加载关键代码 2、默认模式的问题 3、问题分析 4、tms参数修改 总结 前言 在前面的博文介绍中,在线连接如下:浅谈前端自定义…

国图公考:研究生可以考选调生吗?

研究生可以报考选调生吗?当然是可以的,但是同样需要满足一定的条件才可以。 除本科生外,具有硕士、博士学位的考生均可申请考试。但是,除了满足应届毕业生的身份,还需要满足年龄限制。一般来说,本科生不超过25岁&…

【损失函数】SmoothL1Loss 平滑L1损失函数

1、介绍 torch.nn.SmoothL1Loss 是 PyTorch 中的一个损失函数,通常用于回归问题。它是 L1 损失和 L2 损失的结合,旨在减少对异常值的敏感性。 loss_function nn.SmoothL1Loss(reductionmean, beta1.0) 2、参数 size_average (已弃用): 以前用于确定是…

CANopen DS402 Home offset理解

本文通俗解释CANopen DS402中Home offset的含义。 一 原本解释 CANopen DS402中规定对象字典项0x607C用于存放Home offset,文档中对其解释如下, The home offset object is the difference between the zero position for the application and the mach…

一起玩儿物联网人工智能小车(ESP32)——21. ESP32的LED PWM控制器说明

摘要:本文介绍ESP32的LED PWM控制器的详细原理说明 ESP32芯片提供了2种用于输出PWM的信号的PWM控制器,一种LED控制器(LEDC),一种是马达PWM控制器(MCPWM)。其中MCPWM是专门用于马达调速控制的控制…

缺失的第一个正数(LeetCode 41)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力4.2 排序4.3 哈希表4.4 空间复杂度为 O(1) 的哈希表4.5 置换 参考文献 1.问题描述 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级…

k8s搭建(详细演示完整一篇)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

2023年度总结—你是你的年度MVP吗?

这段年度总结其实我之前就想写了,大概就是市赛比完之后18号的样子把,但是因为太懒了就一直拖到了现在哈哈,我思来想去,翻来覆去,彻夜难眠,想了想,还是决定把它写了吧!毕竟&#xff0…

【ROS2】MOMO的鱼香ROS2(一)ROS2入门篇——从Ubuntu操作系统开启

从Ubuntu操作系统开启 引言1 术语汇总2 Ubuntu (操作系统)2.1 Ubuntu权限管理2.2 Ubuntu安装软件2.2.1 使用apt命令安装2.2.2 dpkg安装deb包2.2.3 make install源代码安装 2.3 Ubuntu之常用指令2.3.1 ls命令(查看文件)2.3.2 cd 命…

生财有术项目精选

生财有术项目精选 25700读者,71内容 这绝对是小报童这个平台的第一名了,背靠着生财有术这个国内最大的副业平台,再加上现如今的副业热潮,成功造就了2W订阅的奇迹 专栏包含66个精选实操赚钱项目,可以说每一个项目都蕴含…

Vue(二):计算属性与 watch 监听器

03. Vue 指令拓展 3.1 指令修饰符 可以通过 . 来指明一些指令的后缀,不同的后缀中封装了不同的操作,可以帮助我们简化代码,比如之前使用过的监听 enter 键的弹起,我们需要操作事件对象,来检测用户使用了哪个键&#…

Python 中的运算符介绍(1)

算数运算符 常见的% 、//、/ 用法 赋值运算符 赋值运算:将等号右边赋值给等号左边 常见场景: 比较运算符 代码解析: 逻辑运算符 位运算符(了解) 三目运算符 身份证运算符 成员运算符

Vue独立组件开发-动态组件

文章目录 一、前言二、实现三、优化四、总结五、最后 一、前言 在开发中&#xff0c;你经常会遇到这么一种情况&#xff1a;根据条件动态地切换某个组件&#xff0c;或动态地选择渲染某个组件。 Vue 提供了另外一个内置的组件 <component> 和 is 特性&#xff0c;可以更…

【零基础入门VUE】在 Vue 中构建复杂表单

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门VUE专栏https://blog.csdn.net/arthas777/category_12537076.html 目录 v-modelVue 中的 指令 Vue 中的组件 没有构建步骤 随着构建步骤 注册 VUE 组件 Vue 道具 VUE 中的道具声明 在 VUE 中传递 PROP…