Files
GX-gp-notify/alembic/versions/6e8f4c2d1b0a_add_ai_analysis_columns.py
v6ole 754214692e feat: 接入 DeepSeek AI 分析公告是否为中国电信可承接项目
- 新增 ai_enabled/ai_api_key/ai_base_url/ai_model 等配置项,通过 .env 管理
- 新增 app/services/ai_analyzer.py — DeepSeek API 调用 + 详情页正文提取
- 新增 extract_page_content() 从详情页抓取正文供 AI 分析
- Announcement 模型新增 ai_relevant / ai_analysis 字段
- 流水线集成 AI 分析步骤(关键词匹配后、通知前)
- AI 标记为可承接的项目额外发送 markdown 着重通知
- 创建 alembic 迁移版本 6e8f4c2d1b0a
2026-05-26 11:45:51 +08:00

31 lines
834 B
Python

"""add_ai_analysis_columns
Revision ID: 6e8f4c2d1b0a
Revises: 1f59799a5083
Create Date: 2026-05-21 10:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '6e8f4c2d1b0a'
down_revision: Union[str, Sequence[str], None] = '1f59799a5083'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""添加 AI 分析相关字段"""
op.add_column('announcements', sa.Column('ai_relevant', sa.Boolean(), nullable=True))
op.add_column('announcements', sa.Column('ai_analysis', sa.Text(), nullable=True))
def downgrade() -> None:
"""回滚"""
op.drop_column('announcements', 'ai_analysis')
op.drop_column('announcements', 'ai_relevant')