{"_id":"@baiducloud/qianfan-code-interpreter","_rev":"8-d6dcd6f6430850b79c88d166461fd1b4","name":"@baiducloud/qianfan-code-interpreter","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@baiducloud/qianfan-code-interpreter","version":"0.0.1","keywords":["code-interpreter","sdk","umd","react"],"_id":"@baiducloud/qianfan-code-interpreter@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":"a738ad0929f232fb21a28abe31856bbfd08f0d82","tarball":"https://registry.npmjs.org/@baiducloud/qianfan-code-interpreter/-/qianfan-code-interpreter-0.0.1.tgz","fileCount":180,"integrity":"sha512-Tl7RpFz0l6IG6M38tnm94KdzsSVy5DkhwhmlqiV2cJpPufkeOgLFYPpEc+osU0TpYtRm/AogBl9kugS9oe/IOw==","signatures":[{"sig":"MEQCIBpWQ/kIGcdVHWB+pDFAKTzH6juAp0tS/mAjj3Oi2TRdAiBMq49LWbjnD/6EBgH1CnwazmhyGsSvq2UYYtBw/MB6Kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47015775},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"0893d52a1a48deb52d3f62f41744d13044eaf9fc","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":"Code Interpreter SDK - 代码解释器SDK，提供UMD格式的第三方集成能力","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qianfan-code-interpreter_0.0.1_1769599730514_0.40770537854950506","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@baiducloud/qianfan-code-interpreter","version":"0.0.2","keywords":["code-interpreter","sdk","umd","react"],"_id":"@baiducloud/qianfan-code-interpreter@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":"9c3fb640404d972b687ac0beb24d930ebbab7dad","tarball":"https://registry.npmjs.org/@baiducloud/qianfan-code-interpreter/-/qianfan-code-interpreter-0.0.2.tgz","fileCount":180,"integrity":"sha512-bue3kAHSo6XqTSSEFI7ZcbDNtko6SMX8Jd2wcybQnZebopOeWr/rinInhlCvsPvf1he5LDxOnfsFz/kSM8PsLQ==","signatures":[{"sig":"MEQCIBOc0KYuIWCrxJkQ0/uZKVuM83NK7Ah2F4kwNypqIBEUAiA++jZUNt+KrG3dzSOdjj0RGTDxyil5ozZZMJuFupoX1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47016357},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"39676802d9b75b539c4f586371517e7f4cd4b224","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":"Code Interpreter SDK - 代码解释器SDK，提供UMD格式的第三方集成能力","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qianfan-code-interpreter_0.0.2_1769672278834_0.8992295699971486","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-28T11:28:50.441Z","modified":"2026-09-09T12:33:07.396Z","0.0.1":"2026-01-28T11:28:51.397Z","0.0.2":"2026-01-29T07:37:59.715Z"},"keywords":["code-interpreter","sdk","umd","react"],"description":"Code Interpreter SDK - 代码解释器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":"# Code Interpreter SDK\n\n代码解释器 SDK，提供 UMD 格式的第三方集成能力，支持通过 `<script>` 标签引入使用。\n\n## 安装\n\n### 通过 npm 安装\n\n```bash\nnpm install @baiducloud/qianfan-code-interpreter\n```\n\n**注意**：本包提供 UMD 格式的构建产物，仅支持通过 `<script>` 标签引入。\n\n## 使用方法\n\n### OpenAPI 文档\n\nSDK 需要配合 OpenAPI 自行实现接口调用。在实现 `IClientService` 接口时，请参考 [千帆 API 文档](https://cloud.baidu.com/doc/qianfan-api/s/Umizse15q) 中的代码解释器 Agent 相关接口规范。\n\n### UMD引入\n\n通过 `<script>` 标签引入，SDK 会自动挂载到 `window.CodeInterpreterAgent`。\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(\n            __dirname,\n            \"node_modules/@baiducloud/qianfan-code-interpreter/dist\",\n        ),\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>Code Interpreter SDK 示例</title>\n    </head>\n    <body>\n        <!-- 步骤1：创建容器（必须在脚本加载前存在） -->\n        <div id=\"code-interpreter-container\"></div>\n\n        <!-- 步骤2：加载 UMD 包（必须在应用代码之前加载） -->\n        <script src=\"/dist/index.js\"></script>\n        <!-- 或使用通过构建配置引入的路径 -->\n        <!-- <script src=\"/index.js\"></script> -->\n\n        <!-- 步骤3：初始化 SDK（必须在 UMD 包加载后执行） -->\n        <script>\n            // 实现 IClientService 接口（接口定义见下方）\n            const clientService = {\n                /** 对话接口 - SSE流式接口 */\n                codeInterpreterRun: (param, callbacks, options) => {\n                    // param: 请求参数对象\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\n                    // 实现 SSE 流式请求逻辑\n                    // 示例：通过 EventSource 或其他方式实现流式请求\n                    const eventSource = new EventSource(\"/api/stream\", {\n                        headers: options?.headers,\n                    });\n\n                    eventSource.onmessage = (event) => {\n                        callbacks.onMessage(event.data);\n                    };\n\n                    eventSource.onerror = (error) => {\n                        callbacks.onError(new Error(\"Stream error\"));\n                        eventSource.close();\n                    };\n\n                    // 监听 abort 信号\n                    options?.abortController?.signal.addEventListener(\n                        \"abort\",\n                        () => {\n                            eventSource.close();\n                            callbacks.onError(new Error(\"Request aborted\"));\n                        },\n                    );\n                },\n\n                /** 创建对话 */\n                async createConversation() {\n                    // 返回对话ID\n                    return \"conversation-id-123\";\n                },\n\n                /** 文件上传 */\n                async uploadFile(file, conversationId) {\n                    // 实现文件上传逻辑，返回文件ID和对话ID\n                    return {\n                        file_id: \"file-id-123\",\n                        conversation_id: conversationId,\n                    };\n                },\n\n                /** 应用基本信息查询 */\n                async getAppInfo() {\n                    return {\n                        name: \"代码解释器Agent\",\n                        prologue:\n                            \"支持Python代码执行，提供数据分析、可视化等能力，适用于数据处理、图表生成等场景\",\n                        avatarUrl: \"https://codeinterpreter.baidu.com/logo.png\",\n                    };\n                },\n            };\n\n            // 初始化 SDK\n            CodeInterpreterAgent.init(\n                document.getElementById(\"code-interpreter-container\"),\n                clientService,\n            );\n        </script>\n    </body>\n</html>\n```\n\n## 类型声明文件\n\n构建后会生成 `dist/index.d.ts` 类型声明文件，可以通过以下方式使用类型：\n\n```typescript\n// 从类型声明文件导入类型\nimport type {\n    IClientService,\n    IFileUploadRes,\n    IAppInfo,\n} from \"@baiducloud/qianfan-code-interpreter/dist/index.d.ts\";\n```\n\n## IClientService 接口定义\n\n```typescript\n/** SDK模式下的客户端服务接口 */\ninterface IClientService {\n    /** 对话接口 - SSE流式接口 */\n    codeInterpreterRun: (\n        param: any,\n        callbacks: {\n            /** 接受到消息的回调 */\n            onMessage: (message: string) => void;\n            /** 任务执行完成的回调 */\n            onCompleted: () => void;\n            /** 任务执行错误的回调 */\n            onError: (error: Error) => void;\n        },\n        options?: {\n            abortController?: AbortController;\n            headers?: HeadersInit;\n        },\n    ) => void;\n\n    /** 创建对话 */\n    createConversation(): Promise<string>;\n\n    /** 文件上传 */\n    uploadFile(file: File, conversationId: string): Promise<IFileUploadRes>;\n\n    /** 应用基本信息查询 */\n    getAppInfo(): Promise<IAppInfo>;\n}\n\n/** 文件上传返回结构 */\ninterface IFileUploadRes {\n    /** 文件id */\n    file_id: string;\n    /** 对话id */\n    conversation_id: string;\n}\n\n/** 应用基本信息返回结构 */\ninterface IAppInfo {\n    /** 应用名称 */\n    name?: string;\n    /** 应用开场白 */\n    prologue?: string;\n    /** 应用头像 */\n    avatarUrl?: string;\n}\n```\n\n## 开发调试\n\n在使用 SDK 进行开发时，建议在浏览器开发者工具中查看控制台输出，以便排查问题和调试接口调用。\n\n## 依赖说明\n\nSDK 采用全量打包方式，所有依赖（包括 React、ReactDOM 等）都已打包在 UMD 文件中，用户无需额外引入任何依赖即可使用。\n\n## 注意事项\n\n1. **UMD 模式说明**：本包提供 UMD 格式的构建产物，仅支持通过 `<script>` 标签引入，SDK 会自动挂载到 `window.CodeInterpreterAgent` 全局对象。\n\n2. **加载顺序**：UMD 包必须在应用代码之后加载，因为 SDK 需要挂载 UI 到对应的 DOM 元素上。正确的顺序是：先创建 DOM 容器 → 加载 UMD 包脚本 → 初始化 SDK。\n\n3. **构建配置引入**：可以通过构建工具的 `publicDir` 配置将 `node_modules/@baiducloud/qianfan-code-interpreter/dist` 目录复制到静态资源目录，然后通过 `<script>` 标签引用。\n\n4. **文件上传**：`uploadFile` 方法需要同时传入 `file`（File 对象）和 `conversationId`，SDK 会在内部处理文件上传逻辑。\n\n5. **流式接口**：`codeInterpreterRun` 是一个函数属性，需要实现 SSE（Server-Sent Events）流式请求，并通过回调函数处理消息、完成和错误事件。\n\n6. **对话ID管理**：SDK 会在需要时调用 `createConversation` 创建新对话，也可以在上传文件时传入已有的 `conversationId`。\n\n7. **错误处理**：所有异步方法都应该正确处理错误情况，SDK 会在内部捕获并显示错误信息。\n\n8. **TypeScript 类型支持**：可以通过引用构建产物中的 `dist/index.d.ts` 文件来获得 TypeScript 类型支持。\n","readmeFilename":"README.md"}