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;
  

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

  • 19
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Node.js 是一种运行在服务器端的 JavaScript 运行环境,可以用它来构建后端应用程序。MySQL 是一种流行的关系型数据库管理系统,它可以存储和检索数据。 要使用 Node.js 和 MySQL 来创建 API 接口,你需要使用适当的 Node.js 模块和库来连接和操作 MySQL 数据库。以下是一些可能用到的模块和库: 1. mysql:一个 Node.js 模块,用于连接和操作 MySQL 数据库。可以使用它来执行查询和更新操作。 2. express:一个 Node.js 框架,可以帮助你创建 Web 应用程序和 API 接口。 3. body-parser:一个 Node.js 中间件,用于解析 HTTP 请求正文中的 JSON 数据。 以下是一个示例代码片段,用于使用 Node.js 和 MySQL 创建 API 接口: ``` const mysql = require('mysql'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const port = 3000; // 创建 MySQL 数据库连接 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); // 连接 MySQL 数据库 connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database'); }); // 使用 body-parser 中间件来解析请求正文中的 JSON 数据 app.use(bodyParser.json()); // 创建 GET 请求处理程序,返回所有数据 app.get('/data', (req, res) => { connection.query('SELECT * FROM mytable', (err, result) => { if (err) throw err; res.send(result); }); }); // 创建 POST 请求处理程序,将数据插入到 MySQL 数据库中 app.post('/data', (req, res) => { const data = req.body; connection.query('INSERT INTO mytable SET ?', data, (err, result) => { if (err) throw err; res.send('Data inserted successfully'); }); }); // 启动服务器,监听指定端口 app.listen(port, () => { console.log(`Server listening at http://localhost:${port}`); }); ``` 这个示例代码片段创建了一个 Express 应用程序,使用 body-parser 中间件来解析请求正文中的 JSON 数据。它还使用 mysql 模块来连接和操作 MySQL 数据库。它创建了两个请求处理程序,一个处理 GET 请求,另一个处理 POST 请求,分别返回所有数据和将数据插入到 MySQL 数据库中。最后,它启动了服务器,并监听指定的端口。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值