|
|
8 달 전 | |
|---|---|---|
| backend | 9 달 전 | |
| frontend | 9 달 전 | |
| .gitignore | 11 달 전 | |
| README.md | 9 달 전 |
这是一个基于Go后端和Next.js前端的智能客服系统,用于处理访客与客服之间的对话交流。
AI-CS/
├── backend/ # Go后端服务
│ ├── controller/ # 控制器层
│ ├── models/ # 数据模型
│ ├── service/ # 业务逻辑层
│ ├── repository/ # 数据访问层
│ ├── middleware/ # 中间件
│ ├── router/ # 路由配置
│ ├── infra/ # 基础设施(数据库等)
│ └── utils/ # 工具函数
└── frontend/ # Next.js前端应用
├── app/ # 应用页面
├── public/ # 静态资源
└── ...
Register): 创建新用户账户Login): 验证用户身份InitConversation): 为访客创建或获取现有对话type User struct {
ID uint `json:"id" gorm:"primarykey"`
Username string `json:"username" gorm:"unique"`
Password string `json:"password"`
Role string `json:"role"`
}
type Conversation struct {
ID uint `json:"id" gorm:"primaryKey"`
VisitorID uint `json:"visiter_id"`
AgentID uint `json:"agent_id"`
Status string `json:"status"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type Message struct {
ID uint `json:"id" gorm:"primarykey"`
ConversationID uint `json:"conversation_id"`
SenderID uint `json:"sender_id"`
SenderIsAgent bool `json:"sender_is_agent"`
Content string `json:"content"`
CreatedAt time.Time `json:"created_at"`
}
POST /register参数:
{
"username": "用户名",
"password": "密码",
"role": "角色"
}
返回: 注册成功或失败信息
POST /login参数:
{
"username": "用户名",
"password": "密码"
}
返回: 登录成功或失败信息
POST /conversation/init参数:
{
"visitor_id": 访客ID
}
返回:
{
"conversation_id": 对话ID,
"status": "对话状态"
}
POST /messages参数:
{
"conversation_id": 对话ID,
"content": "消息内容",
"sender_is_agent": 是否客服,
"sender_id": 发送者ID(客服必填,访客可省略或传0)
}
返回: { "message": "创建消息成功" }
GET /messages?conversation_id=对话ID当你调用对话初始化接口时,系统会执行以下步骤:
这就像你去银行办事:
cd backend
cp .env.example .env # 按需修改数据库配置
go mod tidy
go run main.go
cd frontend
cp .env.local.example .env.local # 可选:如需自定义 API 地址
npm install
npm run dev
SenderIsAgent 字段区分是访客还是客服在 backend/.env 中配置以下变量(主进程会自动加载):
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=CS
在 frontend/.env.local 中配置以下变量(不配置则使用默认值):
NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:8080
说明:本地开发无需配置,已默认 http://127.0.0.1:8080。部署到生产环境时修改为实际后端地址(如 https://api.yourdomain.com)。
详见 doc/CHANGELOG.md 文件