feat(ai): 完成 DeepSeek 大模型官方 API 接入、双模调用、高可用平滑降级与管理后台连通性测试

这个提交包含在:
wikiboss
2026-09-21 00:18:19 +08:00
父节点 eec259a3a7
当前提交 56392d8f9e
共有 33 个文件被更改,包括 1362 次插入 和 110 次删除

查看文件

@@ -160,6 +160,24 @@ describe('T36: 名片 AI 顾问对话 (modules/ai chat)', () => {
expect(result.shouldCollectLead).toBe(true);
expect(/[\u4e00-\u9fff]/.test(result.reply)).toBe(true);
});
it('当 DeepSeekService 已配置时优先调用大模型,失败时平滑降级', async () => {
const mockDeepSeek = {
isConfigured: jest.fn().mockReturnValue(true),
chatCompletion: jest.fn().mockResolvedValue('这是 DeepSeek 大模型生成的拟人顾问回复'),
};
service.deepSeekService = mockDeepSeek as any;
const res = await service.ask(userAsk('你们都有什么服务?'));
expect(res.reply).toBe('这是 DeepSeek 大模型生成的拟人顾问回复');
expect(mockDeepSeek.chatCompletion).toHaveBeenCalled();
// 测试异常平滑降级
mockDeepSeek.chatCompletion.mockRejectedValue(new Error('Network error'));
const fallbackRes = await service.ask(userAsk('你好', { locale: 'zh-CN' }));
expect(fallbackRes.reply).toBeTruthy();
expect(fallbackRes.reply).toContain('智能顾问');
});
});
describe('3. OpenAiChatController /open/ai/chat', () => {