1.4.1 • Published 5 days ago

spark-desk v1.4.1

Weekly downloads
-
License
ISC
Repository
github
Last release
5 days ago

spark-desk

这是一个使用WebSocket调用 讯飞星火认知大模型 的js库。 星火认知大模型Web API文档

  1. 使用 typescript
  2. 支持 cjs 和 esm
  3. 在命令行中使用
  4. 面向对象
  5. 支持 V1.5、V2、V3、V3.5接口,支持 system(对话背景) 特性。
  6. 支持在浏览器、nodejs里运行

对于 node,基于 ws 实现。
对于 浏览器,基于 原生WebSocket 实现。

简单尝试

你需要在讯飞开放平台中申请星火大模型的使用

npm i spark-desk -g

在安装后,运行 spark-desk 命令,会让你输入 APPIDAPISecretAPIKey; 之后,这些信息将保存到你的用户目录下的 .spark-desk 文件中,以 json 的方式。

你可以手动编辑 .spark-desk 文件,以达到改变配置文件的目的

程序默认使用的版本是 V3.5

在程序启动后,你可以通过命令行与AI交互。

C:\Users\user>spark-desk
spark-desk > 你好
你好!有什么我可以帮忙的吗?[10/9/19]
spark-desk >

其中 [10/9/19] 表示每次回答 token 的消耗,具体对应着 [prompt_tokens/completion_tokens/total_tokens],参考文档

比较有意思的是,你可已通过 -u 参数指定用户名称,也就是指定 请求参数中的 uid 字段,同时,命令行前缀也将显示成 uid 。

spark-desk -u demo
demo > 

程序也会读取配置文件中的 uid 字段,但是命令行中指定的优先级更高。

关于历史消息

提问时,可以将之前的历史消息发送一起发送,以获得良好的上下文体验,但这样通常会消耗大量的 token 。

你可以通过 -l 参数指定文本内容的长度.

是字母 L 的小写, length 的首字母。

默认情况下,任何历史消息都不会发送,也就是 -l = 0

使用样例

C:\Users\user>spark-desk -l 20
spark-desk > 我叫 spark-desk
[13/21/34] 你好,spark-desk!很高兴为你提供帮助。请问有什么问题我可以帮您解答吗?
spark-desk > 我叫什么?
[25/16/41] 很抱歉,我不知道你叫什么。请问有什么我可以帮助你的吗?
spark-desk > 我叫什么?
[25/13/38] 您的名字是“spark-desk”,这是一个虚构的名字。

回答有概率问题,但是AI大概率会告诉你 你叫 spark-desk , 因为有上下文。 如果不指定 -l 参数,AI 基本上不会回答出你的名字。 因为上下文没有一起发送。

在您的项目里一起使用

cjs 方式
// index.js
const {SparkDesk} = require("spark-desk")
// 根据实际情况填写
const sparkDesk = new SparkDesk({
    APPID: "a5fxxxxxx",
    APISecret: "MGIxNTcwNDI4MGY1YjUxM2Mxxxxxxx",
    APIKey: "aa5fbf57f7818bd1cec61dexxxxxxxx",
    version: 3.5
});

const user = sparkDesk.createUser("demo");

user.speak("你好!很高兴认识你。").then(res => console.log(res.getAllContent()))

输出

node .\index.js
你好!很高兴认识你。请问有什么问题我可以帮您解答吗?
esm 方式

只需要将第一行换成下面的代码即可。

// index.mjs
import {SparkDesk} from "spark-desk"

本项目开发环境

名称版本
nodejsv18.17.1
npm10.5.2
OSWindows 11 专业版
webstormWebStorm 2023.2
1.4.1

5 days ago

1.4.0

5 days ago

1.3.1

6 days ago

1.2.0

7 months ago

1.1.0

8 months ago

1.0.5

8 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago