Files
zn-ai/src/renderer/api/SessionsApi.ts
2026-03-06 14:41:59 +08:00

122 lines
3.0 KiB
TypeScript

import { getRequest, postRequest, patchRequest, deleteRequest, ResponseModel } from '@utils/request'
// 创建会话 的请求参数和响应数据结构
export interface CreateSessionRequest {
title?: string
tenant_id_query?: string
}
export interface CreateSessionResponse {
session_id: string
user_id: string
tenant_id: string
title: string
}
export const createSession = async (params: CreateSessionRequest) => {
const res: ResponseModel = await postRequest('/nianxx/api/sessions', params)
return res.data as CreateSessionResponse
}
// 获取会话列表 的请求参数和响应数据结构
export interface SessionListRequest {
tenant_id_query?: string
limit?: number
offset?: number
}
export interface SessionListResponse {
sessions: Array<SessionListRecords>
total: number
}
export interface SessionListRecords {
session_id: string
user_id: string
tenant_id: string
title: string
status: string
created_at: string
updated_at: string
}
export const getSessionList = async (params: SessionListRequest) => {
const res: ResponseModel = await getRequest('/nianxx/api/sessions', params)
return res.data as SessionListResponse
}
/// 获取会话消息历史 的请求参数和响应数据结构
export interface SessionMessagesRequest {
user_id_query?: string
tenant_id_query?: number
limit?: number
offset?: number
session_id: string
}
export interface SessionMessagesResponse {
messages: Array<SessionMessageRecords>
total: number
}
export interface SessionMessageRecords {
id: number
session_id: string
role: string
content: string
source: string
message_id: string | null
created_at: string
timestamp?: number
}
// 获取会话消息历史 的函数实现
export const getSessionMessages = async (params: SessionMessagesRequest) => {
const res: ResponseModel = await getRequest(`/nianxx/api/sessions/${params.session_id}/messages`, {
limit: params.limit,
offset: params.offset,
user_id_query: params.user_id_query,
tenant_id_query: params.tenant_id_query,
})
return res.data as SessionMessagesResponse
}
/// /api/sessions/{session_id} 的请求参数和响应数据结构
export interface UpdateSessionRequest {
session_id: string
title: string
}
export interface UpdateSessionResponse {
success: boolean
}
// 更新会话信息 的函数实现
export const updateSession = async (params: UpdateSessionRequest) => {
const res: ResponseModel = await postRequest(`/nianxx/api/sessions/${params.session_id}/rename`, {
title: params.title,
})
return res.data as UpdateSessionResponse
}
/// /api/sessions/{session_id} 的请求参数和响应数据结构
export interface DeleteSessionRequest {
session_id: string
}
export interface DeleteSessionResponse {
success: boolean
}
// 删除会话 的函数实现
export const deleteSession = async (params: DeleteSessionRequest) => {
const res: ResponseModel = await postRequest(`/nianxx/api/sessions/${params.session_id}/delete`, {})
return res.data as DeleteSessionResponse
}