百度千帆大模型平台 JavaScript SDK
针对百度智能云千帆大模型平台,我们推出了一套 JavaScript SDK(下称千帆 SDK),方便用户通过代码接入并调用千帆大模型平台的能力。
如何安装
npm install @baiducloud/qianfan
yarn add @baiducloud/qianfan
快速使用
鉴权
在使用千帆 SDK 之前,用户需要 百度智能云控制台 - 安全认证 页面获取 Access Key 与 Secret Key,并在 千帆控制台 中创建应用,选择需要启用的服务,具体流程参见平台 说明文档。
SDK 支持从当前目录的 .env 中读取配置,也可以修改环境变量 QIANFAN_ACCESS_KEY 和 QIANFAN_SECRET_KEY ,同时支持初始化手动传入 AK/SK 。
env 读取
env 文件示例
在你项目的根目录中创建一个名为 .env 的文件,并添加以下内容:
QIANFAN_AK=your_access_key
QIANFAN_SK=your_secret_key
QIANFAN_ACCESS_KEY=another_access_key
QIANFAN_SECRET_KEY=another_secret_key
修改 env 的配置
import {setEnvVariable} from "@baiducloud/qianfan";
setEnvVariable('QIANFAN_AK','***');
setEnvVariable('QIANFAN_SK','***');
初始化手动传入 AK/SK
const client = new ChatCompletion({ QIANFAN_AK: '***', QIANFAN_SK: '***'});
const client = new ChatCompletion({ QIANFAN_ACCESS_KEY: '***', QIANFAN_SECRET_KEY: '***' });
Chat 对话
可以使用 ChatCompletion
对象完成对话相关操作
import {ChatCompletion} from "@baiducloud/qianfan";
const client = new ChatCompletion();
async function main() {
const resp = await client.chat({
messages: [
{
role: "user",
content: "今天深圳天气",
},
],
}, "ERNIE-Bot-turbo");
}
main();
参数传入 stream 为 true
时,返回流式结果
async function main() {
const stream = await client.chat({
messages: [
{
role: "user",
content: "等额本金和等额本息有什么区别?"
},
],
stream: true,
}, "ERNIE-Bot-turbo");
for await (const chunk of stream as AsyncIterableIterator<any>) {
}
}
Completion 续写
对于不需要对话,仅需要根据 prompt 进行补全的场景来说,用户可以使用 Completions
来完成这一任务。
import {Completions} from "@baiducloud/qianfan";
const client = new Completions();
async function main() {
const resp = await client.completions({
prompt: 'Introduce the city Beijing',
}, "SQLCoder-7B");
}
main();
参数传入 stream 为 true
时,返回流式结果
async function main() {
const stream = await client.completions({
prompt: 'Introduce the city Beijing',
stream: true,
}, "SQLCoder-7B");
for await (const chunk of stream as AsyncIterableIterator<any>) {
}
}
main();
Embedding 向量化
千帆 SDK 同样支持调用千帆大模型平台中的模型,将输入文本转化为用浮点数表示的向量形式。转化得到的语义向量可应用于文本检索、信息推荐、知识挖掘等场景。
import {Embedding} from "@baiducloud/qianfan";
const client = new Eembedding();
async function main() {
const resp = await client.embedding({
input: [ 'Introduce the city Beijing'],
}, "Embedding-V1");
}
main();