🦞 飞行侠实现:主持龙虾生成纪要
核心功能:
- Meeting 模型:添加 host_agent_id, host_instance_id
- 会议纪要 API:记录获取 + 纪要上传 + 结束通知
- 会议结束自动通知主持龙虾生成纪要
- 平台留存纪要供参会者下载
API 端点:
- GET /api/v1/meetings/{id}/records/ - 获取会议记录(主持专用)
- POST /api/v1/meetings/{id}/minutes/upload/ - 上传纪要(主持专用)
- POST /api/v1/meetings/{id}/end-notify/ - 会议结束通知
测试:
- test_host_minutes.py: 完整流程测试通过
算力分配:
- 中央平台:消息路由 + 数据存储(轻量级)
- 主持龙虾:生成纪要(消耗用户算力)
- 平台留存:纪要供所有参会者下载
This commit is contained in:
@@ -36,6 +36,14 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
||||
|
||||
meeting = serializer.save(host=host)
|
||||
|
||||
# 指定主持龙虾(可选)
|
||||
host_agent_id = request.data.get('host_agent_id')
|
||||
host_instance_id = request.data.get('host_instance_id')
|
||||
if host_agent_id:
|
||||
meeting.host_agent_id = host_agent_id
|
||||
meeting.host_instance_id = host_instance_id
|
||||
meeting.save()
|
||||
|
||||
# 创建主持人参会记录
|
||||
Participant.objects.create(
|
||||
meeting=meeting,
|
||||
@@ -79,6 +87,21 @@ class MeetingViewSet(viewsets.ModelViewSet):
|
||||
meeting.ended_at = timezone.now()
|
||||
meeting.save()
|
||||
|
||||
# 触发通知主持龙虾生成纪要
|
||||
try:
|
||||
from .minutes_api import MeetingEndNotifyView
|
||||
from django.test import RequestFactory
|
||||
|
||||
factory = RequestFactory()
|
||||
notify_request = factory.post(f'/api/v1/meetings/{meeting.id}/end-notify/')
|
||||
response = MeetingEndNotifyView.as_view()(notify_request, pk=str(meeting.id))
|
||||
|
||||
if response.status_code == 200:
|
||||
pass # 通知成功
|
||||
except Exception as e:
|
||||
# 通知失败不影响会议结束
|
||||
pass
|
||||
|
||||
return Response({'status': '会议已结束'})
|
||||
|
||||
@action(detail=True, methods=['post'])
|
||||
|
||||
Reference in New Issue
Block a user