{"_id":"@baiducloud/qianfan-ai-assistant","_rev":"9-4f1fc12fddd4ae8d746f50cf1c39c002","name":"@baiducloud/qianfan-ai-assistant","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@baiducloud/qianfan-ai-assistant","version":"0.0.1","keywords":["ai-assistant","agent-space","sdk","umd","react"],"license":"MIT","_id":"@baiducloud/qianfan-ai-assistant@0.0.1","maintainers":[{"name":"xinc123","email":"xinc12358@gmail.com"},{"name":"bce-cfc-dev","email":"bce-cfc-dev@baidu.com"},{"name":"yangwei9012","email":"yangwei9012@163.com"},{"name":"lurunze","email":"lurunze@hotmail.com"},{"name":"leophen","email":"leophen@foxmail.com"},{"name":"willghy","email":"390816673@qq.com"},{"name":"howie126313","email":"howie126313@gmail.com"},{"name":"tjdl102306","email":"tjdl102306@gmail.com"}],"dist":{"shasum":"5b84fc78becedf98af0421d0554a59b4433fac07","tarball":"https://registry.npmjs.org/@baiducloud/qianfan-ai-assistant/-/qianfan-ai-assistant-0.0.1.tgz","fileCount":122,"integrity":"sha512-kySF9ca4vzX/6E8KVMLe4PfKSR4uYD4B65Llt48qyQm4ekJF4lj64viC2wps9oPnFdY/xqdS1G8KjJTBFdgx9Q==","signatures":[{"sig":"MEYCIQDNJj2O9UFiuoSjsX54eMLdFxT2eZQ8HJKtEhX5MnqOigIhAMuYhhrDOB+b4SDSbRNLwKg7DTI07U2B2FVphhCIgqBW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28044347},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"2dbbdf9f937d6c6bcbd8c49e7cbf8f63eb51d498","scripts":{"dev":"rsbuild dev","build:umd":"rslib build && cp src/dist-index.d.ts dist/index.d.ts","dev:dist-test":"rsbuild dev --config rsbuild.dist-test.config.ts"},"_npmUser":{"name":"xinc123","email":"xinc12358@gmail.com"},"_npmVersion":"10.8.2","description":"AI Assistant SDK - AI助手SDK，提供UMD格式的第三方集成能力","directories":{},"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qianfan-ai-assistant_0.0.1_1774495923798_0.20391352087898107","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@baiducloud/qianfan-ai-assistant","version":"0.0.2","keywords":["ai-assistant","agent-space","sdk","umd","react"],"license":"MIT","_id":"@baiducloud/qianfan-ai-assistant@0.0.2","maintainers":[{"name":"xinc123","email":"xinc12358@gmail.com"},{"name":"bce-cfc-dev","email":"bce-cfc-dev@baidu.com"},{"name":"yangwei9012","email":"yangwei9012@163.com"},{"name":"lurunze","email":"lurunze@hotmail.com"},{"name":"leophen","email":"leophen@foxmail.com"},{"name":"willghy","email":"390816673@qq.com"},{"name":"howie126313","email":"howie126313@gmail.com"},{"name":"tjdl102306","email":"tjdl102306@gmail.com"}],"dist":{"shasum":"a30d52baff0f308f6a71d93cc3d23962ae5861ca","tarball":"https://registry.npmjs.org/@baiducloud/qianfan-ai-assistant/-/qianfan-ai-assistant-0.0.2.tgz","fileCount":122,"integrity":"sha512-bjD1cH48hCxqg7qk/ygtoDCPU6DkMQAcvgYiQoL+VlpwTnM2c8IBX+Y8rmzL6QhRM5YP+YwvTsHrdQXcBWIl8A==","signatures":[{"sig":"MEYCIQDZwvCSI/s2GgL7TWUw1Fr4tjVh6VdhhMUsAA+XWnzCWQIhAK1KpQw+ags4JJ2IN2ADh8IWtfF7/Y2CN2cncL1NBw0x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28049144},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"2dbbdf9f937d6c6bcbd8c49e7cbf8f63eb51d498","scripts":{"dev":"rsbuild dev","build:umd":"rslib build && cp src/dist-index.d.ts dist/index.d.ts","dev:dist-test":"rsbuild dev --config rsbuild.dist-test.config.ts"},"_npmUser":{"name":"xinc123","email":"xinc12358@gmail.com"},"_npmVersion":"10.8.2","description":"AI Assistant SDK - AI助手SDK，提供UMD格式的第三方集成能力","directories":{},"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qianfan-ai-assistant_0.0.2_1774508079249_0.9155942408527613","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@baiducloud/qianfan-ai-assistant","version":"0.0.3","keywords":["ai-assistant","agent-space","sdk","umd","react"],"license":"MIT","_id":"@baiducloud/qianfan-ai-assistant@0.0.3","maintainers":[{"name":"xinc123","email":"xinc12358@gmail.com"},{"name":"bce-cfc-dev","email":"bce-cfc-dev@baidu.com"},{"name":"yangwei9012","email":"yangwei9012@163.com"},{"name":"lurunze","email":"lurunze@hotmail.com"},{"name":"leophen","email":"leophen@foxmail.com"},{"name":"willghy","email":"390816673@qq.com"},{"name":"howie126313","email":"howie126313@gmail.com"},{"name":"tjdl102306","email":"tjdl102306@gmail.com"}],"dist":{"shasum":"bcbacef3fbc61d75f10aea81f3acbc7081b9909b","tarball":"https://registry.npmjs.org/@baiducloud/qianfan-ai-assistant/-/qianfan-ai-assistant-0.0.3.tgz","fileCount":122,"integrity":"sha512-7NSu6MHyeSNEpH7SaYQk4tS4NYRx6S46CVDjX5fG0woNLv8SfXk1N9uJv722KzQVgpIl3J7XntIZMGUZLrEnsg==","signatures":[{"sig":"MEYCIQDC+FrxEp8Nhdg3cyy/33qIQW2J3QSEkGNg2E+X530HUQIhAL7DW+0rq2wUVwDB1vARw94WjNb9+68nRtLKK6KKjgF+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28099081},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"dee192cb0589e2bd636ef3a14c1d813a811b2c64","scripts":{"dev":"rsbuild dev","build:umd":"rslib build && cp src/dist-index.d.ts dist/index.d.ts","dev:dist-test":"rsbuild dev --config rsbuild.dist-test.config.ts"},"_npmUser":{"name":"xinc123","email":"xinc12358@gmail.com"},"_npmVersion":"10.8.2","description":"AI Assistant SDK - AI助手SDK，提供UMD格式的第三方集成能力","directories":{},"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qianfan-ai-assistant_0.0.3_1775560786074_0.21332540341234085","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-26T03:32:03.731Z","modified":"2026-09-09T12:33:06.677Z","0.0.1":"2026-03-26T03:32:04.331Z","0.0.2":"2026-03-26T06:54:39.773Z","0.0.3":"2026-04-07T11:19:46.558Z"},"license":"MIT","keywords":["ai-assistant","agent-space","sdk","umd","react"],"description":"AI Assistant SDK - AI助手SDK，提供UMD格式的第三方集成能力","maintainers":[{"email":"siddenly@live.com","name":"siddenly"},{"email":"zxxself@126.com","name":"daxiongz"},{"email":"xinc12358@gmail.com","name":"xinc123"},{"email":"bce-cfc-dev@baidu.com","name":"bce-cfc-dev"},{"email":"yangwei9012@163.com","name":"yangwei9012"},{"email":"lurunze@hotmail.com","name":"lurunze"},{"email":"leophen@foxmail.com","name":"leophen"},{"email":"aaa919938949@gmail.com","name":"mingliuyiming"},{"email":"wangyuzhen01@baidu.com","name":"wangyuzhen01"},{"email":"390816673@qq.com","name":"willghy"},{"email":"howie126313@gmail.com","name":"howie126313"},{"email":"zhangchi951221@gmail.com","name":"sanderhoff"},{"email":"kaloklxc@gmail.com","name":"kaloklxc-pixel"},{"email":"chenxuejin512@gmail.com","name":"chenxuejin"},{"email":"tjdl102306@gmail.com","name":"tjdl102306"}],"readme":"# @baiducloud/qianfan-ai-assistant\n\nAI 助手 SDK，提供 UMD 格式的第三方集成能力，支持通过 `<script>` 标签引入使用。\n\n## 安装\n\n```bash\nnpm install @baiducloud/qianfan-ai-assistant\n```\n\n**注意**：本包提供 UMD 格式的构建产物，仅支持通过 `<script>` 标签引入。\n\n## 使用方法\n\n### OpenAPI 文档\n\nSDK 需要配合 OpenAPI 自行实现接口调用。在实现 `IClientService` 接口时，请参考 [千帆 API 文档](https://cloud.baidu.com/doc/qianfan-api/s/Jmmnerwk8) 中的AI助手 Agent 相关接口规范。\n\n### UMD 引入\n\n通过 `<script>` 标签引入，SDK 会自动挂载到 `window.AIAssistantAgent`。\n\n#### 引入方式\n\n**方式一：直接引用构建产物**\n\n如果已将 UMD 包复制到项目的静态资源目录，可以直接通过相对路径引用：\n\n```html\n<script src=\"/dist/index.js\"></script>\n```\n\n**方式二：通过构建配置引入**\n\n在构建配置中（如 Vite、Webpack、Rsbuild 等），可以通过 `publicDir` 配置将 UMD 包引入到项目中：\n\n```javascript\n// vite.config.js / webpack.config.js / rsbuild.config.ts 等\nimport path from 'path';\n\nexport default {\n    // ... 其他配置\n    publicDir: {\n        name: path.resolve(__dirname, 'node_modules/@baiducloud/qianfan-ai-assistant/dist')\n    }\n};\n```\n\n配置后，UMD 包会被复制到构建输出的静态资源目录，可以通过 `<script>` 标签引用：\n\n```html\n<script src=\"/index.js\"></script>\n```\n\n#### 使用示例\n\n**重要提示**：UMD 包必须在应用代码之后加载，因为 SDK 需要挂载 UI 到对应的 DOM 元素上。请确保：\n\n1. 先创建用于挂载 SDK UI 的 DOM 容器\n2. 然后加载 UMD 包脚本\n3. 最后在脚本中初始化 SDK\n\n```html\n<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\" />\n        <title>AI 助手 SDK 示例</title>\n    </head>\n    <body>\n        <!-- 步骤1：创建容器（必须在脚本加载前存在） -->\n        <div id=\"ai-assistant-container\"></div>\n\n        <!-- 步骤2：加载 UMD 包 -->\n        <script src=\"/dist/index.js\"></script>\n\n        <!-- 步骤3：初始化 SDK（必须在 UMD 包加载后执行） -->\n        <script>\n            // 实现 IClientService 接口（接口定义见下方）\n            const clientService = {\n                /** 对话接口 - SSE流式接口 */\n                agentSpaceRun(param, callbacks, options) {},\n\n                /** 恢复对话 */\n                recoverChat(param, callbacks, options) {},\n\n                /** 文件上传 */\n                async uploadFile(file, conversationId) {\n                    // 实现文件上传逻辑，返回文件ID和对话ID\n                    return {\n                        file_id: 'file-id',\n                        conversation_id: conversationId\n                    };\n                },\n\n                /** 获取用户偏好 */\n                async getUserPreferences(appId) {\n                    return {\n                        user_profile: {\n                            instructions: '',\n                            location_info: {\n                                province: '',\n                                city: '',\n                                district: ''\n                            }\n                        }\n                    };\n                },\n\n                /** 保存用户偏好 */\n                async saveUserPreferences(appId, preferences) {},\n\n                /** 获取已上传文件信息 */\n                async getUploadFileInfo(fileIds) {\n                    return {data: [], has_more: false};\n                },\n\n                /** 取消正在进行的请求 */\n                async sendAbortRequest(param) {},\n\n                /** 语音识别 */\n                async speechToText(file, appId) {\n                    return '';\n                },\n\n                /** 历史记录相关 */\n                async fetchHistoryChatList(params) {\n                    return {data: [], has_more: false};\n                },\n                async fetchChatHistory(params) {\n                    return [];\n                },\n                async fetchChatStatus(conversationIds) {\n                    return {data: []};\n                },\n                async updateChatTitle(id, title, end_user_id) {\n                    return {success: true};\n                },\n                async deleteHistoryChat(chatId) {\n                    return {success: true, deleted_count: 1};\n                }\n            };\n\n            AIAssistantAgent.init(document.getElementById('ai-assistant-container'), clientService);\n        </script>\n    </body>\n</html>\n```\n\n## IClientService 接口说明\n\n使用 SDK 前，需要实现 `IClientService` 接口，该接口定义了 SDK 与后端服务的通信方式。\n\n### 核心方法\n\n| 方法                  | 说明                   | 返回类型                           |\n| --------------------- | ---------------------- | ---------------------------------- |\n| `agentSpaceRun`       | SSE 对话流式接口       | `void`                             |\n| `recoverChat`         | SSE 恢复对话接口       | `void`                             |\n| `uploadFile`          | 文件上传               | `Promise<IFileUploadRes>`          |\n| `getUserPreferences`  | 获取用户偏好           | `Promise<IUserPreferencesData>`    |\n| `saveUserPreferences` | 保存用户偏好           | `Promise<void>`                    |\n| `getUploadFileInfo`   | 批量查询已上传文件信息 | `Promise<ISessionHistoryFilesRes>` |\n| `sendAbortRequest`    | 取消正在进行的请求     | `Promise<any>`                     |\n| `speechToText`        | 语音识别（ASR）        | `Promise<string>`                  |\n\n### 历史记录方法\n\n| 方法                   | 说明                 | 返回类型                                                  |\n| ---------------------- | -------------------- | --------------------------------------------------------- |\n| `fetchHistoryChatList` | 获取历史记录总列表   | `Promise<{data: IConversationItem[]; has_more: boolean}>` |\n| `fetchChatHistory`     | 获取历史对话消息列表 | `Promise<IHistoryChatItem[]>`                             |\n| `fetchChatStatus`      | 批量获取会话状态     | `Promise<{data: IConversationStatus[]}>`                  |\n| `updateChatTitle`      | 更新会话标题         | `Promise<{success: boolean}>`                             |\n| `deleteHistoryChat`    | 删除历史对话         | `Promise<{success: boolean; deleted_count: number}>`      |\n\n### SSE 接口签名\n\n`agentSpaceRun` 和 `recoverChat` 方法的签名：\n\n```typescript\n(\n    param: any,\n    callbacks: {\n        onMessage: (message: string) => void;\n        onCompleted: () => void;\n        onError: (error: Error) => void;\n    },\n    options?: {\n        abortController?: AbortController;\n        headers?: HeadersInit;\n    }\n) => void\n```\n\n## 开发调试\n\n在使用 SDK 进行开发时，建议在浏览器开发者工具中查看控制台输出，以便排查问题和调试接口调用。\n\n## 依赖说明\n\nSDK 采用全量打包方式，所有依赖（包括 React、ReactDOM 等）都已打包在 UMD 文件中，用户无需额外引入任何依赖即可使用。\n\n## 类型声明\n\nSDK 提供完整的 TypeScript 类型声明文件（`dist/index.d.ts`），包含：\n\n- `IClientService` - 客户端服务接口\n- `IFileUploadRes` - 文件上传响应\n- `IAbortRequestParams` - 取消请求参数\n- `IUserPreferencesData` - 用户偏好数据\n- `ISessionHistoryDataReq` - 历史消息请求参数\n- `IHistoryChatItem` - 历史消息条目\n- `IUploadedFileInfo` - 已上传文件详情\n- `ISessionHistoryFilesRes` - 批量文件查询返回\n- `IConversationListReq` - 会话列表请求参数\n- `IConversationItem` - 会话列表元素\n- `IConversationStatus` - 会话状态条目\n- `init` - SDK 初始化函数\n\n## 注意事项\n\n1. **UMD 模式说明**：本包提供 UMD 格式的构建产物，仅支持通过 `<script>` 标签引入，SDK 会自动挂载到 `window.AIAssistantAgent` 全局对象。\n\n2. **加载顺序**：UMD 包必须在应用代码之后加载，因为 SDK 需要挂载 UI 到对应的 DOM 元素上。正确的顺序是：先创建 DOM 容器 → 加载 UMD 包脚本 → 初始化 SDK。\n\n3. **构建配置引入**：可以通过构建工具的 `publicDir` 配置将 `node_modules/@baiducloud/qianfan-ai-assistant/dist` 目录复制到静态资源目录，然后通过 `<script>` 标签引用。\n\n4. **文件上传**：`uploadFile` 方法需要同时传入 `files`（File 对象）和 `conversationId`，SDK 会在内部处理文件上传逻辑。\n\n5. **流式接口**：`agentSpaceRun` 是一个函数属性，需要实现 SSE（Server-Sent Events）流式请求，并通过回调函数处理消息、完成和错误事件。\n\n6. **语音识别**：`speechToText` 方法接收 `Blob` 类型的音频数据，非 `File` 类型。\n\n7. **错误处理**：所有异步方法都应该正确处理错误情况，SDK 会在内部捕获并显示错误信息。\n\n8. **TypeScript 类型支持**：可以通过引用构建产物中的 `dist/index.d.ts` 文件来获得 TypeScript 类型支持。7. **错误处理**：所有异步方法都应该正确处理错误情况，SDK 会在内部捕获并显示错误信息。\n\n8. **TypeScript 类型支持**：可以通过引用构建产物中的 `dist/index.d.ts` 文件来获得 TypeScript 类型支持。\n","readmeFilename":"README.md"}