vibe-ai-c 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +76 -0
  2. package/package.json +1 -2
package/README.md ADDED
@@ -0,0 +1,76 @@
1
+ # VibeAI (v3.3)
2
+
3
+ VibeAI 是一个极简的、面向浏览器的多供应商 AI SDK 与 UI 管理工具。它专为希望在不引入大型框架(如 React/Vue)的情况下,快速在浏览器环境集成多模型 AI 能力的开发者设计。
4
+
5
+ ## 核心特性
6
+
7
+ - **零依赖 ESM**:纯 JavaScript 实现,无任何外部库依赖。
8
+ - **增强安全性**:可选的 **AES-GCM (Web Crypto API)** 加密,使用主密码保护本地存储的 API Key。
9
+ - **多实例绑定**:支持将多个 `<select>` 元素绑定到不同的模型实例,并独立持久化其选择状态。
10
+ - **智能模型管理**:
11
+ - **上下文搜索**:针对拥有大量模型(>10个)的供应商提供实时搜索过滤。
12
+ - **批量操作**:支持对搜索结果进行“全选/清空”,不影响隐藏的模型。
13
+ - **自动排序**:模型列表按字母顺序排列。
14
+ - **高稳定性 UI**:采用颗粒度 DOM 更新策略,在刷新列表或搜索时保持输入框焦点与滚动位置。
15
+ - **智能路径逻辑**:自动处理 Base URL,如果请求失败会智能尝试补全 `/v1` 后缀。
16
+
17
+ ## 快速开始
18
+
19
+ ### 1. 引入与初始化
20
+ ```javascript
21
+ import { vibeAI } from './vibe-ai.js';
22
+
23
+ // 1. 初始化并绑定管理按钮
24
+ await vibeAI.init({
25
+ setupBtnId: 'settings-btn' // 点击此按钮打开管理弹窗
26
+ });
27
+
28
+ // 2. 绑定模型选择下拉框(支持多个)
29
+ vibeAI.bindModelSelect('chat-model-selector');
30
+ ```
31
+
32
+ ### 2. 发起对话请求
33
+ ```javascript
34
+ // 必须指定 instanceId(对应 bindModelSelect 的 ID)
35
+ const stream = await vibeAI.chat({
36
+ instanceId: 'chat-model-selector',
37
+ messages: [{ role: 'user', content: '你好!' }],
38
+ stream: true
39
+ });
40
+
41
+ for await (const chunk of stream) {
42
+ process.stdout.write(chunk); // 逐字输出
43
+ }
44
+ ```
45
+
46
+ ## API 参考
47
+
48
+ ### `vibeAI.init({ setupBtnId })`
49
+ - 初始化 SDK。自动执行从 `v2` 到 `v3` 的配置迁移。
50
+ - `setupBtnId`: (可选) 绑定一个 HTML 按钮用于打开管理界面。
51
+
52
+ ### `vibeAI.bindModelSelect(id)`
53
+ - 将一个 `<select>` 元素与 VibeAI 状态同步。
54
+ - 自动填充用户在设置中勾选的模型资产。
55
+ - 状态(用户的选择)会自动持久化。
56
+
57
+ ### `vibeAI.chat(payload)`
58
+ - `payload.instanceId`: (必填) 绑定的 Select 元素 ID,用于获取当前选中的模型和供应商。
59
+ - `payload.messages`: 标准 OpenAI 消息格式。
60
+ - `payload.stream`: 布尔值。为 `true` 时返回 `AsyncGenerator`。
61
+
62
+ ### `vibeAI.openSettings()`
63
+ - 编程方式打开供应商管理弹窗。
64
+
65
+ ## 配置规范
66
+
67
+ - **存储方案**:使用 `vibe_ai_v3_config` 键名存储于 `localStorage`。
68
+ - **加密模式**:开启加密后,API Key 以 `ENC:JSON_STR` 格式存储。主密码仅存在于内存会话中(SessionKey)。
69
+ - **智能补全**:如果填写的 Base URL 请求失败,SDK 会检查是否缺少 `/v1`。例如:输入 `https://api.example.com` 失败后,会自动尝试 `https://api.example.com/v1`。
70
+
71
+ ## UI 交互逻辑
72
+
73
+ 1. **获取模型**:点击“获取并校验资产”将连接供应商终端。
74
+ 2. **智能选择**:模型少于 10 个时默认全选;超过 10 个时需用户手动勾选常用模型。
75
+ 3. **搜索过滤**:在模型列表搜索框输入时,非匹配项会通过 CSS 隐藏,确保不破坏 DOM 树。
76
+ 4. **加密切换**:点击顶部“锁定”状态可切换明文/加密模式。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-ai-c",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "一个极简的、面向浏览器的多供应商 AI SDK 与 UI 管理工具。支持 OpenAI 兼容协议。",
5
5
  "main": "vibe-ai.js",
6
6
  "type": "module",
@@ -25,7 +25,6 @@
25
25
  "demo.html",
26
26
  "vibe-ai.js",
27
27
  "vibe-ai.min.js",
28
- "llm.txt",
29
28
  "README.md"
30
29
  ]
31
30
  }