Files
knowai/types/chat/api.ts
2025-11-23 22:26:39 +08:00

99 lines
2.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { ChatSession, ChatMessage } from './base';
import type { ChatMessageType } from './enum';
// 创建聊天会话请求接口
export interface CreateChatSessionRequest {
// 对方的ID因为当前用户的id可以在session里获取cookie自动带上)
participantId: string;
}
// 更新聊天会话请求接口(占位)
export interface UpdateChatSessionRequest {
// 只能用于处理后台逻辑
sessionId: string;
}
// 发送消息请求接口
export interface SendMessageRequest {
sessionId: string;
content: string;
type: ChatMessageType;
metadata?: Record<string, unknown>;
}
// 获取聊天会话列表请求接口
export interface GetChatSessionsRequest {
page?: number;
limit?: number;
}
// 获取聊天会话列表响应接口
export interface GetChatSessionsResponse {
sessions: ChatSession[];
total: number;
page: number;
limit: number;
}
// 获取聊天消息请求接口
export interface GetChatMessagesRequest {
sessionId: string;
page?: number;
limit?: number;
before?: string; // 消息ID获取该消息之前的消息
after?: string; // 消息ID获取该消息之后的消息
}
// 获取聊天消息响应接口
export interface GetChatMessagesResponse {
messages: ChatMessage[];
total: number;
page: number;
limit: number;
hasMore: boolean;
}
// 标记消息已读请求接口
export interface MarkMessagesAsReadRequest {
sessionId: string;
messageIds: string[];
}
// 标记消息已读响应接口(已读状态只面向接收方)
export interface MarkMessagesAsReadResponse {
success: boolean;
markedMessageIds: string[]; // 成功标记的消息ID
failedMessageIds?: string[]; // 失败的消息ID
}
// 搜索聊天消息请求接口
export interface SearchChatMessagesRequest {
sessionId?: string;
query: string;
page?: number;
limit?: number;
}
// 搜索聊天消息响应接口
export interface SearchChatMessagesResponse {
messages: ChatMessage[];
total: number;
page: number;
limit: number;
}
// 搜索聊天会话请求接口
export interface SearchChatSessionsRequest {
query: string;
page?: number;
limit?: number;
}
// 搜索聊天会话响应接口
export interface SearchChatSessionsResponse {
sessions: ChatSession[];
total: number;
page: number;
limit: number;
}