Skip to content

快速开始

环境要求

  • Node.js >= 18
  • npm >= 9 或 pnpm >= 8
  • Git

安装

克隆仓库

bash
git clone https://github.com/gitcoffee-os/joycare.git
cd joycare

安装依赖

bash
npm install
# 或
pnpm install

开发

启动开发服务器

bash
npm run dev
# 或
pnpm dev

开发服务器启动后,访问 http://localhost:3000 即可预览。

构建生产版本

bash
npm run build
# 或
pnpm build

构建产物将输出到 dist 目录。

项目结构

joycare/
├── apps/                 # 应用目录
│   ├── web/             # Web 端客服工作台
│   ├── mobile/          # 移动端应用
│   └── desktop/         # 桌面端应用
├── packages/            # 共享包
│   ├── ui/              # UI 组件库
│   ├── sdk/             # 客服 SDK
│   └── shared/          # 共享工具
├── server/              # 服务端
│   ├── gateway/         # 网关服务
│   ├── chat/            # 对话服务
│   ├── ticket/          # 工单服务
│   └── ai/              # AI 服务
├── docs/                # 文档
└── scripts/             # 脚本

配置说明

基础配置

在项目根目录创建 .env 文件:

env
# 服务端地址
VITE_API_BASE_URL=http://localhost:8080

# WebSocket 地址
VITE_WS_URL=ws://localhost:8080/ws

# 应用名称
VITE_APP_NAME=JoyCare

多端配置

Web 端

env
# apps/web/.env
VITE_PLATFORM=web
VITE_ENABLE_PWA=true

移动端

env
# apps/mobile/.env
VITE_PLATFORM=mobile
VITE_ENABLE_PUSH=true
VITE_PUSH_APP_KEY=your_push_key

桌面端

env
# apps/desktop/.env
VITE_PLATFORM=desktop
VITE_ENABLE_SHORTCUT=true

使用示例

初始化 SDK

typescript
import { JoyCareSDK } from '@joycare/sdk'

const sdk = new JoyCareSDK({
  apiBaseUrl: 'http://localhost:8080',
  wsUrl: 'ws://localhost:8080/ws',
  appKey: 'your_app_key'
})

await sdk.connect()

接入客服对话

typescript
// 创建对话
const conversation = await sdk.createConversation({
  channel: 'web',
  customerInfo: {
    name: '张三',
    phone: '13800138000'
  }
})

// 发送消息
await sdk.sendTextMessage({
  conversationId: conversation.id,
  content: '你好,我需要帮助'
})

监听消息

typescript
sdk.onMessage((message) => {
  console.log('收到消息:', message)
})

sdk.onConversationUpdate((conversation) => {
  console.log('对话更新:', conversation)
})

sdk.onTicketUpdate((ticket) => {
  console.log('工单更新:', ticket)
})

AI 智能客服

typescript
// 启用 AI 自动回复
await sdk.enableAI({
  conversationId: conversation.id,
  mode: 'hybrid'
})

// AI 转人工
await sdk.transferToAgent({
  conversationId: conversation.id,
  reason: '客户要求人工服务'
})

常见问题

Q: 如何切换开发环境?

A: 使用 .env.development.env.production 等文件来配置不同环境。

Q: 如何接入新的渠道?

A: 在 packages/sdk/src/channels/ 中实现渠道适配器,并在配置中注册。

Q: 如何配置 AI 对话引擎?

A: 在管理后台的 AI 配置页面设置模型参数、知识库关联和对话策略。

下一步