📋 飞行侠添加:会议纪要生成

新增:
- meetings/utils.py: 纪要生成工具函数
  - generate_meeting_minutes(): 生成纪要数据
  - export_minutes_to_markdown(): 导出 Markdown
- meetings/views.py: minutes action
  - 支持 JSON 和 Markdown 两种格式
  - 自动统计参会者消息数
  - 提取待办事项
- test_minutes.py: 纪要测试脚本

使用:
- GET /api/v1/meetings/{id}/minutes/ → JSON
- GET /api/v1/meetings/{id}/minutes/?output=markdown → Markdown
This commit is contained in:
2026-04-04 11:39:31 +08:00
parent c510a1e4b2
commit 53c3ac487a
4 changed files with 194 additions and 2 deletions

View File

@@ -274,6 +274,28 @@ class MeetingViewSet(viewsets.ModelViewSet):
)
return Response(MessageSerializer(message).data, status=status.HTTP_201_CREATED)
@action(detail=True, methods=['get'], url_path='minutes')
def minutes(self, request, pk=None):
"""生成会议纪要"""
meeting = self.get_object()
try:
from .utils import generate_meeting_minutes, export_minutes_to_markdown
minutes = generate_meeting_minutes(str(meeting.id))
output_format = request.query_params.get('output', 'json')
if output_format == 'markdown':
md_content = export_minutes_to_markdown(minutes)
return Response({'markdown': md_content})
else:
return Response(minutes)
except Exception as e:
return Response(
{'error': f'生成纪要失败:{str(e)}'},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
class ParticipantViewSet(viewsets.ModelViewSet):