@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
68 lines (57 loc) • 1.92 kB
text/typescript
import {
ChatGroupAgentItem,
ChatGroupItem,
NewChatGroup,
NewChatGroupAgent,
} from '@/database/schemas';
import { lambdaClient } from '@/libs/trpc/client';
import { IChatGroupService } from './type';
export class ServerService implements IChatGroupService {
createGroup(params: Omit<NewChatGroup, 'userId'>): Promise<ChatGroupItem> {
return lambdaClient.group.createGroup.mutate({
...params,
config: params.config as any,
});
}
updateGroup(id: string, value: Partial<ChatGroupItem>): Promise<ChatGroupItem> {
return lambdaClient.group.updateGroup.mutate({
id,
value: {
...value,
config: value.config as any,
},
});
}
deleteGroup(id: string): Promise<any> {
return lambdaClient.group.deleteGroup.mutate({ id });
}
getGroup(id: string): Promise<ChatGroupItem | undefined> {
return lambdaClient.group.getGroup.query({ id });
}
getGroups(): Promise<ChatGroupItem[]> {
return lambdaClient.group.getGroups.query();
}
addAgentsToGroup(groupId: string, agentIds: string[]): Promise<ChatGroupAgentItem[]> {
return lambdaClient.group.addAgentsToGroup.mutate({ agentIds, groupId });
}
removeAgentsFromGroup(groupId: string, agentIds: string[]): Promise<any> {
return lambdaClient.group.removeAgentsFromGroup.mutate({ agentIds, groupId });
}
updateAgentInGroup(
groupId: string,
agentId: string,
updates: Partial<Pick<NewChatGroupAgent, 'order' | 'role'>>,
): Promise<ChatGroupAgentItem> {
return lambdaClient.group.updateAgentInGroup.mutate({
agentId,
groupId,
updates: {
order: updates.order === null ? undefined : updates.order,
role: updates.role === null ? undefined : updates.role,
},
});
}
getGroupAgents(groupId: string): Promise<ChatGroupAgentItem[]> {
return lambdaClient.group.getGroupAgents.query({ groupId });
}
}