feat(ai): 支持聊天附件解析并优化数据库对象操作

This commit is contained in:
Syngnat
2026-06-12 12:30:28 +08:00
parent d5688d31f6
commit d1aa06d537
21 changed files with 908 additions and 134 deletions

View File

@@ -75,4 +75,24 @@ describe('toAIRequestMessage', () => {
images: ['data:image/png;base64,abc'],
});
});
it('appends extracted file attachment content to the user request payload', () => {
const payload = toAIRequestMessage(message({
role: 'user',
content: '帮我看附件',
attachments: [{
id: 'att-1',
name: 'report.md',
mimeType: 'text/markdown',
size: 24,
kind: 'markdown',
text: '# 周报\n收入下降',
}],
}));
expect(payload.content).toContain('帮我看附件');
expect(payload.content).toContain('<用户上传附件>');
expect(payload.content).toContain('report.md');
expect(payload.content).toContain('收入下降');
});
});

View File

@@ -1,4 +1,5 @@
import type { AIChatMessage, AIToolCall } from '../types';
import { appendAIChatAttachmentsToContent } from '../components/ai/aiChatAttachments';
export interface AIRequestMessage {
role: AIChatMessage['role'];
@@ -12,7 +13,7 @@ export interface AIRequestMessage {
export const toAIRequestMessage = (message: AIChatMessage): AIRequestMessage => {
const payload: AIRequestMessage = {
role: message.role,
content: message.content,
content: appendAIChatAttachmentsToContent(message.content, message.attachments),
};
if (message.images && message.images.length > 0) {