🔧 修复:组队团战创建所有龙虾座位
问题: - 只传递了 host_agent_id(第一只龙虾) - 导致第二只龙虾没有座位 修复: - 前端:传递 agent_ids(所有龙虾) - 后端:遍历 agent_ids 创建所有龙虾参会者 - 避免重复创建 结果: ✅ 单枪匹马 - 1 座位 ✅ 组队团战(2 龙虾) - 3 座位 ✅ 独当一面(1 龙虾) - 1 座位
This commit is contained in:
@@ -36,7 +36,7 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
meeting = serializer.save(host=host)
|
meeting = serializer.save(host=host)
|
||||||
|
|
||||||
# 指定主持龙虾(可选)
|
# 指定主持龙虾(第一只,负责生成纪要)
|
||||||
host_agent_id = request.data.get('host_agent_id')
|
host_agent_id = request.data.get('host_agent_id')
|
||||||
host_instance_id = request.data.get('host_instance_id')
|
host_instance_id = request.data.get('host_instance_id')
|
||||||
if host_agent_id:
|
if host_agent_id:
|
||||||
@@ -53,17 +53,22 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
|||||||
is_host=True
|
is_host=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 如果指定了 host_agent_id,创建该龙虾参会者
|
# 创建所有龙虾参会者(从 sessions 中获取)
|
||||||
if host_agent_id:
|
agent_ids = request.data.get('agent_ids', [])
|
||||||
|
for agent_id in agent_ids:
|
||||||
|
# 避免重复创建
|
||||||
|
if Participant.objects.filter(meeting=meeting, agent_id=agent_id).exists():
|
||||||
|
continue
|
||||||
|
|
||||||
# 从用户绑定的龙虾中获取正确信息
|
# 从用户绑定的龙虾中获取正确信息
|
||||||
agent_info = host.get_linked_agent(host_agent_id)
|
agent_info = host.get_linked_agent(agent_id)
|
||||||
Participant.objects.create(
|
Participant.objects.create(
|
||||||
meeting=meeting,
|
meeting=meeting,
|
||||||
agent_type='openclaw',
|
agent_type='openclaw',
|
||||||
agent_id=host_agent_id,
|
agent_id=agent_id,
|
||||||
agent_name=agent_info['agent_name'] if agent_info else host_agent_id,
|
agent_name=agent_info['agent_name'] if agent_info else agent_id,
|
||||||
agent_emoji=agent_info.get('agent_emoji', '🤖') if agent_info else '🤖',
|
agent_emoji=agent_info.get('agent_emoji', '🤖') if agent_info else '🤖',
|
||||||
nickname=agent_info['agent_name'] if agent_info else host_agent_id,
|
nickname=agent_info['agent_name'] if agent_info else agent_id,
|
||||||
is_host=False
|
is_host=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
0
docs/ae商业机制.md
Normal file
0
docs/ae商业机制.md
Normal file
@@ -176,8 +176,9 @@ function MeetingList() {
|
|||||||
|
|
||||||
const res = await axios.post(`${API_BASE}/meetings/`, {
|
const res = await axios.post(`${API_BASE}/meetings/`, {
|
||||||
topic,
|
topic,
|
||||||
auto_add_virtual_agents: !autoAddAgents ? false : agentIds.length === 0, // 如果没有龙虾才添加虚拟的
|
auto_add_virtual_agents: agentIds.length === 0, // 只有没有龙虾时才添加虚拟的
|
||||||
host_agent_id: agentIds.length > 0 ? agentIds[0] : null
|
host_agent_id: agentIds.length > 0 ? agentIds[0] : null, // 第一只作为主持龙虾
|
||||||
|
agent_ids: agentIds // 传递所有龙虾
|
||||||
});
|
});
|
||||||
navigate(`/meeting/${res.data.id}`);
|
navigate(`/meeting/${res.data.id}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user