diff --git a/api/swagger.yaml b/api/swagger.yaml index 764948a..4edecd7 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -92,6 +92,9 @@ definitions: file: $ref: '#/definitions/entity.File' file_id: + description: |- + FileId + 虽然有了 UserFileId, 但是 File Id 还是应该保留,因为这个是针对访客用户的 type: integer hidden: type: boolean @@ -106,6 +109,10 @@ definitions: type: integer updated_at: type: string + user_file: + $ref: '#/definitions/entity.UserFile' + user_file_id: + type: integer type: object entity.File: properties: @@ -125,6 +132,9 @@ definitions: type: string path: type: string + public: + description: 是否公开,访客上传的文件应始终公开,或归属于所有者 + type: boolean size: type: integer updated_at: @@ -170,6 +180,22 @@ definitions: user_id: type: integer type: object + entity.UserFile: + properties: + created_at: + type: string + file: + $ref: '#/definitions/entity.File' + file_id: + type: integer + id: + example: "0" + type: string + updated_at: + type: string + user_id: + type: integer + type: object schema.AddPublicChatMessageRequest: properties: assistant_token: diff --git a/src/api/api.ts b/src/api/api.ts index e90543d..f1059d0 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -764,7 +764,7 @@ export interface EntityChatMessage { */ 'file'?: EntityFile; /** - * + * FileId 虽然有了 UserFileId, 但是 File Id 还是应该保留,因为这个是针对访客用户的 * @type {number} * @memberof EntityChatMessage */ @@ -805,6 +805,18 @@ export interface EntityChatMessage { * @memberof EntityChatMessage */ 'updated_at'?: string; + /** + * + * @type {EntityUserFile} + * @memberof EntityChatMessage + */ + 'user_file'?: EntityUserFile; + /** + * + * @type {number} + * @memberof EntityChatMessage + */ + 'user_file_id'?: number; } /** * @@ -848,6 +860,12 @@ export interface EntityFile { * @memberof EntityFile */ 'path'?: string; + /** + * 是否公开,访客上传的文件应始终公开,或归属于所有者 + * @type {boolean} + * @memberof EntityFile + */ + 'public'?: boolean; /** * * @type {number} @@ -971,6 +989,49 @@ export interface EntityTool { */ 'user_id'?: number; } +/** + * + * @export + * @interface EntityUserFile + */ +export interface EntityUserFile { + /** + * + * @type {string} + * @memberof EntityUserFile + */ + 'created_at'?: string; + /** + * + * @type {EntityFile} + * @memberof EntityUserFile + */ + 'file'?: EntityFile; + /** + * + * @type {number} + * @memberof EntityUserFile + */ + 'file_id'?: number; + /** + * + * @type {string} + * @memberof EntityUserFile + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof EntityUserFile + */ + 'updated_at'?: string; + /** + * + * @type {number} + * @memberof EntityUserFile + */ + 'user_id'?: number; +} /** * * @export diff --git a/src/pages/chats/[id]/index.vue b/src/pages/chats/[id]/index.vue index 2c2e688..2e7557e 100644 --- a/src/pages/chats/[id]/index.vue +++ b/src/pages/chats/[id]/index.vue @@ -251,12 +251,16 @@ const getMessages = () => { res.data.data?.forEach((message: any) => { if (message.role === "file") { // 如果 mime_type 是 image/ - if (message.file.mime_type.startsWith("image/")) { - // 设置 content + if (message.user_file) { + if (message.user_file.file.mime_type.startsWith("image/")) { + message.role = "image"; + message.content = message.user_file.file.id; + } + } else if (message.file.mime_type.startsWith("image/")) { message.role = "image"; + message.content = message.file.id; } - message.content = message.file.id; messages.value.data?.push(message); } else if (message.role === "assistant" || message.role === "user") { messages.value.data?.push(message);