ai-trading-agent-gemini:社媒情绪转交易信号的 AI 代理
AI Trading Agent Gemini 详细部署教程
项目概述
ai-trading-agent-gemini 是一个 AI 交易代理应用,能够将社交媒体情绪分析转化为可执行的交易信号。它整合了 LunarCrush 社交数据、Google Gemini AI 分析能力、Supabase 实时数据库以及 Inngest 后台任务处理。
技术栈:Next.js 15 + TypeScript + Tailwind CSS v4 + Supabase (PostgreSQL) + Inngest + Google Gemini AI + LunarCrush API
整个系统通过一个 7 步后台工作流处理社交数据,并实时向用户界面推送进度。你可以选择本地开发部署或生产环境部署。
部署前准备
硬件与软件要求
| 项目 | 要求 |
|---|---|
| Node.js | 18+ |
| 操作系统 | Windows / macOS / Linux |
| 代码编辑器 | VS Code(推荐) |
| 预计时间 | 20-30 分钟 |
必需的 API 密钥(5 个)
| 服务 | 用途 | 费用 |
|---|---|---|
| LunarCrush | 社交媒体情绪数据 | 需订阅 |
| Google Gemini | AI 分析 | 有免费额度 |
| Supabase | 数据库与实时订阅 | 有免费额度 |
| Inngest | 后台任务处理 | 有免费额度 |
第一步:项目安装
打开终端,执行以下命令克隆并安装项目:
1 | # 克隆仓库 |
第二步:配置 LunarCrush API
LunarCrush 提供加密货币的实时社交情绪数据,包含 AltRank™ 和 Galaxy Score™ 等专有指标。
- 访问
lunarcrush.com/signup注册账户 - 选择合适的订阅计划(Individual 计划适合本项目)
- 在控制面板中生成 API Key
- 将密钥添加到
.env.local文件:
1 | LUNARCRUSH_API_KEY=lc_你的密钥 |
核心指标说明:
- Mentions:社交帖子量(24小时)
- Interactions:总社交互动量
- Creators:独立内容创作者数量
- AltRank™:市场+社交综合排名
- Galaxy Score™:资产健康度指标(0-100)
第三步:配置 Google Gemini AI
Gemini 负责根据社交模式生成交易建议。
- 访问
aistudio.google.com - 创建新项目或选择现有项目
- 进入 API Keys → Create API Key
- 将密钥添加到
.env.local:
1 | GOOGLE_GEMINI_API_KEY=你的Gemini密钥 |
第四步:配置 Supabase 数据库
Supabase 提供 PostgreSQL 数据库和实时订阅功能,用于实时进度追踪。
- 访问
supabase.com,点击 Start your project - 创建新项目:
- 项目名称:
ai-trading-agent - 数据库密码:安全保存
- 区域:选择最近的区域
- 项目名称:
- 进入 Project Overview,复制 Project URL 和 anon public key
- 添加到
.env.local:
1 | NEXT_PUBLIC_SUPABASE_URL=https://你的项目.supabase.co |
第五步:创建数据库表结构
- 在 Supabase 控制面板中,进入 SQL Editor
- 点击 New query
- 复制并粘贴以下完整脚本:
1 | -- 交易信号表 |
- 点击 Run 执行脚本
- 进入 Table Editor 验证
trading_signals和analysis_jobs两张表已创建
第六步:配置 Inngest 后台任务
Inngest 负责处理 AI 分析流水线,实现实时进度追踪。
- 访问
inngest.com,点击 Sign up 注册 - 创建新应用:
ai-trading-agent - 进入 Settings → Keys,复制:
- Event Key(以
inngest_开头) - Signing Key(以
signkey_开头)
- Event Key(以
- 添加到
.env.local:
1 | INNGEST_EVENT_KEY=inngest_你的Event密钥 |
第七步:验证环境变量
最终 .env.local 文件应包含以下内容:
1 | # LunarCrush API(必需) |
本地运行与测试
启动开发服务器
需要打开两个终端窗口:
终端 1 - 启动 Next.js 应用:
1 | npm run dev |
访问 http://localhost:3000
终端 2 - 启动 Inngest 开发服务器:
1 | npm run inngest:dev |
访问 http://localhost:8288 查看任务监控
测试完整流程
- 打开
http://localhost:3000 - 点击 Generate Trading Signals
- 观察实时进度(7 步分析流程):
- 初始化分析(14%)
- 准备符号列表(28%)
- 获取社交数据(42%)
- AI 信号生成(57%)
- 保存到数据库(71%)
- 生成摘要(85%)
- 完成分析(100%)
- 在
http://localhost:8288查看 Inngest 任务执行详情 - 分析完成后,交易信号会自动显示
生产环境部署
方案一:部署到 Vercel(推荐)
Vercel 与 Next.js 无缝集成,是最简单的部署方式。
步骤 1:安装 Vercel CLI
1 | npm i -g vercel |
步骤 2:部署到生产环境
1 | vercel --prod |
步骤 3:配置环境变量
- 进入 Vercel 项目控制面板 → Settings → Environment Variables
- 添加以下变量:
| 变量名 | 值 |
|---|---|
LUNARCRUSH_API_KEY |
你的 LunarCrush 密钥 |
GOOGLE_GEMINI_API_KEY |
你的 Gemini 密钥 |
NEXT_PUBLIC_SUPABASE_URL |
你的 Supabase URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
你的 Supabase anon 密钥 |
INNGEST_EVENT_KEY |
你的 Inngest Event 密钥 |
INNGEST_SIGNING_KEY |
你的 Inngest Signing 密钥 |
步骤 4:配置 Inngest 生产环境
- 在 Inngest 控制面板创建生产应用
- 添加生产 URL:
https://你的应用.vercel.app/api/inngest - 更新环境变量为生产密钥
步骤 5:Supabase 生产配置
- 数据库会自动扩展
- 建议启用 Row Level Security (RLS) 增强安全性
- 在 Supabase 控制面板监控使用情况
方案二:使用 Docker 部署
如果你希望在任何支持 Docker 的环境中部署,可以使用 Docker 方案。
步骤 1:创建 Dockerfile
在项目根目录创建 Dockerfile:
1 | FROM node:22-alpine AS deps |
步骤 2:创建 docker-compose.yml
1 | version: '3.8' |
步骤 3:修改 next.config.ts
确保启用 standalone 输出模式:
1 | const nextConfig = { |
步骤 4:构建并运行
1 | # 构建镜像 |
注意:在 Docker 部署中,Inngest 开发服务器无法使用 npm run inngest:dev 方式启动。你需要使用 Inngest 的云端服务,并将 webhook 端点配置为 https://你的域名/api/inngest。
方案三:部署到 Railway
Railway 提供简单的容器化部署体验。
- 访问
railway.app并登录 - 点击 New Project → Deploy from GitHub repo
- 选择你的
ai-trading-agent-gemini仓库 - 在 Variables 标签页添加所有环境变量
- Railway 会自动检测 Next.js 项目并完成部署
常见问题排查
| 问题 | 症状 | 解决方案 |
|---|---|---|
| Inngest 函数未触发 | 进度卡在 0%,无任务创建 | 检查 INNGEST_EVENT_KEY 和 INNGEST_SIGNING_KEY,确保 npm run inngest:dev 正在运行 |
| 数据库连接错误 | “Database connection failed” | 检查 Supabase URL/key,验证表已创建,检查网络连接 |
| LunarCrush 401 未授权 | “Invalid API key” 错误 | 验证 API 密钥格式(lc_... 开头),确认订阅有效 |
| Gemini AI 错误 | “AI analysis failed” | 检查 Google AI API 密钥,验证配额限制 |
| 实时更新不工作 | 进度不更新,信号不显示 | 确保 Supabase anon 密钥权限正确,检查浏览器控制台 |
| 速率限制(429 错误) | 分析中途失败 | LunarCrush Individual 计划限制 10 请求/分钟,添加延迟或升级计划 |
API 速率限制参考
LunarCrush API 限制:
- Individual 计划:10 请求/分钟,2000 次/天
- Builder 计划:100 请求/分钟,20000 次/天
Google Gemini 限制:
- 免费层:15 请求/分钟,1500 次/天
- 付费层:1000 请求/分钟
调试工作流程
如果应用无法正常工作,按顺序检查:
- ✅ 检查环境变量:
.env.local中 5 个必需密钥是否完整 - ✅ 验证数据库表:在 Supabase SQL Editor 中运行 SQL 脚本
- ✅ 确认 API 订阅:LunarCrush 计划有效,Gemini 配额充足
- ✅ 测试 Inngest 连接:确保开发服务器运行在
localhost:8288 - ✅ 检查浏览器控制台:查看 JavaScript 错误或网络请求失败
- ✅ 监控数据库活动:在 Supabase 日志中查看实时事件
- ✅ 重启开发服务器:停止并重新启动两个终端
架构概览
技术组件
| 组件 | 技术 | 用途 |
|---|---|---|
| 前端 | Next.js 15 + React 19 + TypeScript | 现代 Web 应用,服务端组件 |
| 样式 | Tailwind CSS v4 | 响应式 UI |
| 后台任务 | Inngest | 多步骤 AI 工作流处理 |
| 数据库 | Supabase (PostgreSQL) | 实时数据存储与订阅 |
| AI 分析 | Google Gemini | 交易信号生成 |
| 社交数据 | LunarCrush API | 加密货币情绪分析 |
数据流
text
1 | 用户触发分析 → Inngest 后台任务 → LunarCrush API → 社交指标 |
关键文件结构
text
1 | src/ |
性能与扩展建议
当前性能指标
- 首次加载:约 500ms
- 实时更新:Supabase 订阅延迟 <100ms
- AI 处理:完整 5 个符号分析约 30-45 秒
- 后台任务:Inngest 自动重试处理
高负载扩展建议
- LunarCrush API:升级到 Builder 计划(100 请求/分钟)
- 数据库:实现连接池和读取副本
- AI 处理:批量请求并实现响应缓存
- 后台任务:Inngest 随使用层级自动扩展
总结
本项目采用现代 AI 集成模式,通过四个核心服务的协同工作实现完整的交易信号生成流程。部署的关键在于正确配置五个 API 密钥并确保 Inngest 开发服务器与 Next.js 应用同时运行。
对于快速验证,Vercel 部署是最简单的选择;如果需要完全控制部署环境,Docker 方案提供了更大的灵活性。










