ai-trend-publish

ai-trend-publish

TrendPublish: 全自动 AI 内容生成与发布系统 | 微信公众号自动化 | 多源数据抓取 (Twitter/X、网站) | DeepseekAI、千问、讯飞模型 | 智能内容分析排序 | 定时发布 | 多模板支持 | Node.js | TypeScript | AI 技术趋势跟踪工具

Stars: 1011

Visit
 screenshot

AI TrendPublish is an AI-based trend discovery and content publishing system that supports multi-source data collection, intelligent summarization, and automatic publishing to WeChat official accounts. It features data collection from various sources, AI-powered content processing using DeepseekAI Together, key information extraction, intelligent title generation, automatic article publishing to WeChat official accounts with custom templates and scheduled tasks, notification system integration with Bark for task status updates and error alerts. The tool offers multiple templates for content customization and is built using Node.js + TypeScript with AI services from DeepseekAI Together, data sources including Twitter/X API and FireCrawl, and uses node-cron for scheduling tasks and EJS as the template engine.

README:

TrendPublish

一个基于 AI 的趋势发现和内容发布系统,支持多源数据采集、智能总结和自动发布到微信公众号。

🌰 示例公众号:AISPACE科技空间

即刻关注,体验 AI 智能创作的内容~

🌟 主要功能

  • 🤖 多源数据采集

    • Twitter/X 内容抓取
    • 网站内容抓取 (基于 FireCrawl)
    • 支持自定义数据源配置
  • 🧠 AI 智能处理

    • 使用 DeepseekAI Together 千问 万象 讯飞 进行内容总结
    • 关键信息提取
    • 智能标题生成
  • 📢 自动发布

    • 微信公众号文章发布
    • 自定义文章模板
    • 定时发布任务
  • 📱 通知系统

    • Bark 通知集成
    • 任务执行状态通知
    • 错误告警

📝 文章模板

TrendPublish 提供了多种精美的文章模板。查看 模板展示页面 了解更多详情。

DONE

  • [x] 微信公众号文章发布
  • [x] 大模型每周排行榜
  • [x] 热门AI相关仓库推荐
  • [x] 添加通义千问(Qwen)支持
  • [x] 支持多模型配置(如 DEEPSEEK_MODEL="deepseek-chat|deepseek-reasoner")
  • [x] 支持指定特定模型(如 AI_CONTENT_RANKER_LLM_PROVIDER="DEEPSEEK:deepseek-reasoner")

Todo

  • [ ] 热门AI相关论文推荐
  • [ ] 热门AI相关工具推荐
  • [ ] FireCrawl 自动注册免费续期

优化项

  • [ ] 内容插入相关图片
  • [x] 内容去重
  • [ ] 降低AI率
  • [ ] 文章图片优化
  • [ ] ...

进阶

  • [ ] 提供exe可视化界面

🛠 技术栈

  • 运行环境: Node.js + TypeScript
  • AI 服务: DeepseekAI Together 千问 万象 讯飞
  • 数据源:
    • Twitter/X API
    • FireCrawl
  • 定时任务: node-cron
  • 模板引擎: EJS
  • 开发工具:
    • nodemon (热重载)
    • TypeScript

🚀 快速开始

环境要求

  • Node.js (v22+)
  • npm
  • TypeScript

安装

  1. 克隆项目
git clone https://github.com/OpenAISpace/ai-trend-publish
  1. 安装依赖
npm install
  1. 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置必要的环境变量

⚙️ 环境变量配置

.env 文件中配置以下必要的环境变量:

# ===================================
# 基础服务配置
# ===================================

# LLM 服务配置

# OpenAI API配置
OPENAI_BASE_URL="https://api.openai.com/v1"
OPENAI_API_KEY="your_api_key"
OPENAI_MODEL="gpt-3.5-turbo"

# DeepseekAI API配置 https://api-docs.deepseek.com/
DEEPSEEK_BASE_URL="https://api.deepseek.com/v1"
DEEPSEEK_API_KEY="your_api_key"
# 支持配置多个模型,使用 | 分隔
DEEPSEEK_MODEL="deepseek-chat|deepseek-reasoner"

# 讯飞API配置 https://www.xfyun.cn/
XUNFEI_API_KEY="your_api_key"

# 通义千问API配置 https://help.aliyun.com/zh/dashscope/developer-reference/api-details
QWEN_BASE_URL="https://dashscope.aliyuncs.com/api/v1"
QWEN_API_KEY="your_api_key"
QWEN_MODEL="qwen-max"

# 自定义LLM API配置(需要兼容OpenAI API格式)
CUSTOM_LLM_BASE_URL="your_api_base_url"
CUSTOM_LLM_API_KEY="your_api_key"
CUSTOM_LLM_MODEL="your_model_name"

# 默认使用的LLM提供者
# 可选值: OPENAI | DEEPSEEK | XUNFEI | QWEN | CUSTOM
# 也可以指定具体模型,格式为 "提供者:模型名称",例如 "DEEPSEEK:deepseek-reasoner"
DEFAULT_LLM_PROVIDER="DEEPSEEK"

# ===================================
# 模块功能配置
# ===================================

# 注意:使用以下配置前,请确保已在上方正确配置了对应的 LLM 服务参数
# 内容排名和摘要模块LLM提供者配置
# 可选值: OPENAI | DEEPSEEK | XUNFEI | QWEN | CUSTOM
# 也可以指定具体模型,格式为 "提供者:模型名称",例如 "DEEPSEEK:deepseek-reasoner"
AI_CONTENT_RANKER_LLM_PROVIDER="DEEPSEEK:deepseek-reasoner"
AI_SUMMARIZER_LLM_PROVIDER="DEEPSEEK"

# 模板配置
# 文章模板类型配置,可选值: default | modern | tech | mianpro | random
ARTICLE_TEMPLATE_TYPE="default"

# HelloGitHub模板类型配置,可选值: weixin | random
HELLOGITHUB_TEMPLATE_TYPE="default"

# AIBench模板类型配置,可选值: default | random
AIBENCH_TEMPLATE_TYPE="default"

# 数据存储配置
ENABLE_DB=true
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=password
DB_DATABASE=trendfinder

# 微信公众号配置
WEIXIN_APP_ID="your_app_id"
WEIXIN_APP_SECRET="your_app_secret"

# 微信文章配置
NEED_OPEN_COMMENT=false
ONLY_FANS_CAN_COMMENT=false
AUTHOR="your_name"

# 数据抓取配置
# FireCrawl配置 https://www.firecrawl.dev/
FIRE_CRAWL_API_KEY="your_api_key"

# Twitter API配置 https://twitterapi.io/
X_API_BEARER_TOKEN="your_api_key"

# ===================================
# 其他通用配置
# ===================================

# 通知服务配置
ENABLE_BARK=false
BARK_URL="your_key"

⚠️ 配置IP白名单

在使用微信公众号相关功能前,请先将本机IP添加到公众号后台的IP白名单中。

操作步骤

  1. 查看本机IP: IP查询工具
  2. 登录微信公众号后台,添加IP白名单

图文指南

  1. 启动项目
# 测试模式
npm run test

# 运行
npm run start

详细运行时间见 src\controllers\cron.ts

📦 部署指南

方式一:直接部署

  1. 在服务器上安装 Node.js (v20+) 和 PM2
# 安装 PM2
npm install -g pm2
  1. 构建项目
npm run build
  1. 使用 PM2 启动服务
pm2 start dist/index.js --name ai-trend-publish

方式二:Docker 部署

  1. 拉取代码
git clone https://github.com/OpenAISpace/ai-trend-publish.git
  1. 构建 Docker 镜像:
# 构建镜像
docker build -t ai-trend-publsih .
  1. 运行容器:
# 方式1:通过环境变量文件运行
docker run -d --env-file .env --name ai-trend-publsih-container ai-trend-publsih

# 方式2:直接指定环境变量运行
docker run -d \
  -e XXXX=XXXX \
  ...其他环境变量... \
  --name ai-trend-publsih-container \
  ai-trend-publsih

CI/CD 自动部署

项目已配置 GitHub Actions 自动部署流程:

  1. 推送代码到 main 分支会自动触发部署
  2. 也可以在 GitHub Actions 页面手动触发部署
  3. 确保在 GitHub Secrets 中配置以下环境变量:
    • SERVER_HOST: 服务器地址
    • SERVER_USER: 服务器用户名
    • SSH_PRIVATE_KEY: SSH 私钥
    • 其他必要的环境变量(参考 .env.example)

模板开发指南

本项目支持自定义模板开发,主要包含以下几个部分:

1. 了解数据结构

查看 src/modules/render/interfaces 目录下的类型定义文件,了解各个渲染模块需要的数据结构

2. 开发模板

src/templates 目录下按照对应模块开发 EJS 模板

3. 注册模板

在对应的渲染器类中注册新模板,如 ArticleTemplateRenderer

4. 测试渲染效果

npx ts-node -r tsconfig-paths/register src\modules\render\test\test.weixin.template.ts

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 提交 Pull Request

❤️ 特别感谢

感谢以下贡献者对项目的支持:

kilimro

Star History

Star History Chart

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for ai-trend-publish

Similar Open Source Tools

For similar tasks

For similar jobs