Skip to content

查询会话消息列表

接口信息

接口地址:/api/v1/chat/{conversationId}/messages

请求方式:GET

请求数据类型:

响应数据类型:*/*

接口描述:

查询指定会话中的消息列表,支持分页查询

请求示例:

GET /api/v1/chat/1545556/messages?index=174590&limit=10

请求参数

请求头

参数名类型必填描述示例值
AuthorizationstringAPI KeyBearer ak-xxxxeyJhbGciOiJIUzI1NiJ9

路径参数:

参数名称参数说明是否必须数据类型
conversationId会话IDinteger(int64)

查询参数:

参数名称参数说明是否必须数据类型默认值
index消息索引起始位置integer(int64)
limit返回消息数量限制integer(int32)10

响应参数:

参数名称参数说明类型schema
code业务状态码,0000 表示成功,其余失败string
displayCode源系统状态码,用于问题跟踪string
message错误描述信息string
data消息列表arrayChatMessageDto
  index消息索引integer(int64)
  tenantId租户IDinteger(int64)
  senderType消息发送方类型,可用值: USER, AGENTstring
  senderId消息发送方IDstring
  userId关联用户IDinteger(int64)
  agentId关联的智能体IDinteger(int64)
  id消息IDstring
  role消息角色,可用值: USER, ASSISTANT, SYSTEM, FUNCTIONstring
  type消息类型,可用值: CHAT, THINK, PROCESS_OUTPUT, QUESTION, ANSWERstring
  text消息内容string
  time消息时间string(date-time)
  attachments消息附件arrayAttachmentDto
    fileKeystring
    fileUrl文件URLstring
    fileNamestring
    mimeType文件类型string
  think思考内容string
  quotedText引用消息内容string
  finished是否消息内容输出结束boolean
  finishReason完成原因string
  componentExecutedList执行过程输出数据array
  metadata消息扩展内容object
  messageType消息类型,可用值: USER, ASSISTANT, SYSTEM, TOOLstring
tid跟踪唯一标识string
successboolean

响应示例:

javascript
{
	"code": "0000",
	"displayCode": "0000",
	"message": "success",
	"data": [
		{
			"index": 174590,
			"tenantId": 1,
			"senderType": "USER",
			"senderId": "1",
			"userId": 1,
			"agentId": 1596,
			"id": "d5be409c98f44928bcb1cd5a935912cf",
			"role": "USER",
			"type": "CHAT",
			"text": "帮我做一个简单的天气卡片网页,包含温度、天气图标和位置信息",
			"time": "2026-04-13T13:19:09.000+00:00",
			"attachments": null,
			"think": null,
			"quotedText": null,
			"finished": false,
			"finishReason": null,
			"componentExecutedList": null,
			"metadata": null,
			"messageType": "USER"
		},
		{
			"index": 174591,
			"tenantId": 1,
			"senderType": "AGENT",
			"senderId": "1596",
			"userId": 1,
			"agentId": 1596,
			"id": "abc123",
			"role": "ASSISTANT",
			"type": "CHAT",
			"text": "你好!我是一个天气卡片...",
			"time": "2026-04-13T13:19:15.000+00:00",
			"attachments": null,
			"think": null,
			"quotedText": null,
			"finished": true,
			"finishReason": "ENDTURN",
			"componentExecutedList": [],
			"metadata": null,
			"messageType": "ASSISTANT"
		}
	],
	"tid": "6044751776086475149",
	"success": true
}

CURL示例

shell
curl 'http://127.0.0.1:8081/api/v1/chat/1545556/messages?index=174590&limit=10' \
  -H 'Authorization: Bearer ak-d1f2129c4ba24629b8448af3354f9dd0'

{"code":"0000","displayCode":"0000","message":"success","data":[...],"tid":"6044751776086475149","success":true}

测试用例

#场景状态码结果
1查询会话消息(默认分页)0000成功,返回最近10条消息
2查询会话消息(指定起始索引)0000成功,从指定索引开始返回

TS模板示例

ts
// 附件信息
export interface AttachmentDto {
  fileKey?: string;
  fileUrl: string;
  fileName?: string;
  mimeType: string;
}

// 会话消息
export interface ChatMessageDto {
  index?: number;
  tenantId?: number;
  senderType?: 'USER' | 'AGENT';
  senderId?: string;
  userId?: number;
  agentId?: number;
  id: string;
  role: 'USER' | 'ASSISTANT' | 'SYSTEM' | 'FUNCTION';
  type?: 'CHAT' | 'THINK' | 'PROCESS_OUTPUT' | 'QUESTION' | 'ANSWER';
  text?: string;
  time?: string;
  attachments?: AttachmentDto[];
  think?: string;
  quotedText?: string;
  finished?: boolean;
  finishReason?: string;
  componentExecutedList?: unknown[];
  metadata?: Record<string, unknown>;
  messageType?: 'USER' | 'ASSISTANT' | 'SYSTEM' | 'TOOL';
}

// 响应接口
export interface ConversationMessagesRes {
  code: string;
  displayCode: string;
  message: string;
  data: ChatMessageDto[];
  tid: string;
  success: boolean;
}

/** 
 * 查询会话消息列表
 * @param {number} conversationId - 会话ID
 * @param {number} index - 消息索引起始位置
 * @param {number} limit - 返回消息数量限制
 * @returns
 */
export function getConversationMessages(
  conversationId: number,
  index?: number,
  limit?: number
): Promise<ConversationMessagesRes> {
  const params = new URLSearchParams();
  if (index !== undefined) params.set('index', String(index));
  if (limit !== undefined) params.set('limit', String(limit));
  const query = params.toString() ? `?${params}` : '';
  return request.get(`/api/v1/chat/${conversationId}/messages${query}`);
}