npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@bigsmarter/ai-chat-sdk

v1.0.11

Published

AI聊天SDK - 完整的原版功能

Downloads

90

Readme

AI Chat SDK

一个功能完善的AI聊天SDK,支持Vue 3,提供开箱即用的聊天组件和灵活的API。

✨ 核心特性

🎯 真正的开箱即用

  • 零配置启动 - 导入即用,无需实现任何功能
  • 完整UI组件 - 原版样式100%还原
  • 自动初始化 - 自动获取所有必要信息
  • 智能管理 - 自动管理session、智能体、用户信息

🚀 完整功能

  • 打字机效果 - 模拟真实的逐字打印
  • 🧠 深度思考 - 支持深度思考模式
  • 🌐 联网搜索 - 支持实时网络搜索
  • 📝 会话管理 - 创建、加载、删除会话
  • 🔄 重新生成 - 支持重新生成AI回答
  • ⏸️ 停止对话 - 可随时停止生成
  • 💾 历史记录 - 自动保存对话历史
  • 📎 文件上传 - 支持文件上传功能
  • 🤖 智能体切换 - 支持多智能体切换
  • 📋 一键复制 - 支持复制消息内容

📦 安装

npm install ai-chat-sdk

🚀 快速开始

方式一:使用ChatBox组件(推荐)

<template>
  <div class="app">
    <!-- 外部自定义按钮 -->
    <div class="controls">
      <button @click="handleStop">停止</button>
      <button @click="handleRegenerate">重新生成</button>
      <button @click="handleNewChat">新对话</button>
    </div>

    <!-- SDK提供的聊天框(原版样式) -->
    <ChatBox :chat-instance="chatSDK" />
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import { AIChat, ChatBox } from 'ai-chat-sdk';

const chatSDK = ref(null);

onMounted(async () => {
  // 创建SDK实例
  chatSDK.value = new AIChat({
    api: { baseURL: '/api' }
  });
  
  // 自动初始化(获取所有必要信息)
  await chatSDK.value.initialize();
});

// 所有功能SDK已实现,直接调用即可
async function handleStop() {
  await chatSDK.value.stopChat();
}

async function handleRegenerate() {
  await chatSDK.value.regenerateAnswer();
}

async function handleNewChat() {
  await chatSDK.value.createNewSession(); // 会自动刷新智能体列表
}
</script>

🎯 核心方法

初始化

// 自动获取:用户信息、clientToken、智能体列表、文件上传限制
const result = await chatSDK.initialize();

发送消息

await chatSDK.sendMessage({
  userInput: '你好',
  thinkDeep: true,           // 开启深度思考
  webBasedSearch: false,     // 关闭联网搜索
});

对话控制

// 停止当前对话
await chatSDK.stopChat();

// 重新生成回答(自动使用原始参数)
await chatSDK.regenerateAnswer();

// 新建对话(自动刷新智能体列表)
await chatSDK.createNewSession();

会话管理

// 获取会话列表
const sessions = await chatSDK.getSessionList();

// 加载历史会话(自动设置sessionId和消息列表)
await chatSDK.loadHistorySession(sessionId);

// 删除会话
await chatSDK.deleteSession(sessionId);

智能体管理

// 获取智能体列表
const agents = chatSDK.getAgentList();

// 获取当前智能体
const currentAgent = chatSDK.getCurrentAgent();

// 切换智能体(自动更新apikey和清空对话)
await chatSDK.switchAgent(agentId);

其他功能

// 复制消息
await chatSDK.copyMessage(content);

// 获取用户信息
const userInfo = chatSDK.getUserInfo();

// 获取上传限制
const uploadLimit = chatSDK.getUploadLimit();

// 上传文件
const result = await chatSDK.uploadFile(file);

// 消息反馈
await chatSDK.feedbackMessage({
  message_id: 'xxx',
  feedback_type: 'like'
});

📡 事件监听

// 监听消息更新
chatSDK.on('message', (data) => {
  console.log('消息更新:', data.message);
});

// 监听完成事件
chatSDK.on('complete', (data) => {
  console.log('对话完成');
});

// 监听新建会话
chatSDK.on('new-session', (data) => {
  console.log('新建会话:', data);
});

// 监听会话加载
chatSDK.on('session-loaded', (data) => {
  console.log('会话已加载:', data.sessionId);
});

// 监听智能体切换
chatSDK.on('agent-switched', (data) => {
  console.log('智能体已切换:', data.agentId);
});

// 监听复制成功
chatSDK.on('copy-success', (data) => {
  console.log('复制成功');
});

// 取消监听
chatSDK.off('message', listenerFn);

⚙️ 配置选项

const chatSDK = new AIChat({
  api: {
    baseURL: '/api',              // API基础URL
    a2aURL: '/api',               // A2A API URL
    timeout: 180000,              // 请求超时(ms)
  },
  auth: {
    apiKey: 'xxx',                // API密钥(可选,SDK会自动从Cookie读取)
    authToken: 'xxx',             // 认证Token(可选)
    clientToken: 'xxx',           // 客户端Token(可选)
  },
  defaults: {
    thinkDeep: false,             // 默认深度思考
    webBasedSearch: false,        // 默认联网搜索
    typingEffect: true,           // 打字机效果
    typingSpeed: 20,              // 打字速度(ms/字符)
  }
});

💡 完整示例

查看 test-project 目录获取完整的使用示例:

  • App-custom-buttons.vue - 自定义按钮版本(推荐)
  • App-with-component.vue - 完全内置UI版本

🎨 组件说明

ChatBox组件

  • 包含:消息列表 + 输入框
  • 样式:完全还原原版UI
  • 特点:开箱即用,无需自己写样式

Props

| 属性 | 类型 | 默认值 | 说明 | |-----|------|--------|------| | chat-instance | AIChat | - | SDK实例(必需) | | auto-scroll | boolean | true | 自动滚动到底部 | | show-input | boolean | true | 是否显示输入框 | | think-deep | boolean | false | 是否开启深度思考 | | web-search | boolean | false | 是否开启联网搜索 |

Events

| 事件 | 参数 | 说明 | |-----|------|------| | question-click | question: string | 点击相关问题时触发 | | message-sent | message: string | 消息发送后触发 | | loading-change | isLoading: boolean | 加载状态变化时触发 |

🔐 认证说明

SDK支持两种认证方式:

1. 自动从Cookie读取(推荐)

SDK会自动读取以下Cookie:

  • authToken - 认证Token
  • apikey - API密钥
  • client_token - 客户端Token
const chatSDK = new AIChat({
  api: { baseURL: '/api' }
  // 不需要配置auth,SDK会自动读取Cookie
});

2. 手动配置

const chatSDK = new AIChat({
  api: { baseURL: '/api' },
  auth: {
    apiKey: 'your-api-key',
    authToken: 'your-auth-token'
  }
});

🆚 与原版对比

| 功能 | 原版 | SDK | |-----|------|-----| | 初始化 | 手动调用4个接口 | ✅ 一键initialize() | | 新建对话 | 手动清空+刷新列表 | ✅ 自动处理 | | 历史会话 | 手动设置sessionId | ✅ 自动设置 | | 智能体切换 | 手动更新apikey | ✅ 自动更新 | | 消息重发 | 手动保存参数 | ✅ 自动保存 | | UI样式 | 需要自己写 | ✅ 开箱即用 |

📚 文档

🧪 本地开发

# 安装依赖
npm install

# 启动测试项目
cd test-project
npm install
npm run dev

📝 构建发布

# 构建SDK
npm run build:lib

# 发布到npm
npm publish

💡 核心优势

真正的零实现

用户完全不需要

  • ❌ 自己调用API
  • ❌ 管理状态
  • ❌ 处理SSE
  • ❌ 保存参数
  • ❌ 实现业务逻辑
  • ❌ 写样式

所有功能SDK内部完成

  • ✅ 自动初始化
  • ✅ 自动刷新智能体列表
  • ✅ 自动保存重发参数
  • ✅ 自动管理session
  • ✅ 自动处理事件

📄 许可证

MIT

🤝 贡献

欢迎提交 Issue 和 Pull Request!