学术助手工具

一个基于Next.js和FastAPI的学术助手工具,集成Canvas和Google Workspace,支持语音交互和人工审批流程。

  • by shivamsharma72
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shivamsharma72/innovation-hacks

使用说明

创新黑客——学术复制品

语音教学助理: Next.js+Auth0 在网络上, 快速API+语言图+OpenAI 网关, 画布 (每个用户令牌+可选Canvas MCP),以及 谷歌 通过 工作区MCP (一个OAuth)。

仓库布局

路径 目的
应用程序/网络 Next.js用户界面——登录、Canvas登录、聊天
应用程序/网关 FastAPI——JWT、加密密钥、代理
画布mcp Canvas MCP——Python FastMCP,流式HTTP(/mcp)
google_workspace_mcp 谷歌工作区MCP(Gmail、日历等)
docker-compose.yml 可选:容器中的所有服务
脚本/ 帮助者 本地 MCP流程

快速开始——一切 没有Docker

使用 四个终端.将共享秘密放入 apps/gateway/.env 一次(GOOGLE_CLIENT_*, CANVAS_*, USER_GOOGLE_EMAILAuth0、OpenAI, ENCRYPTION_KEY, …).

0.Auth0(网络+网关)

  • 应用程序:常规Web应用程序,URL http://localhost:3000
  • API:创建API→ 标识符 = AUTH0_AUDIENCE 在web+网关中

1.谷歌工作区MCP--端口 8002

需要 紫外线 在 google_workspace_mcp:

./scripts/run-workspace-mcp-local.sh

用途 apps/gateway/.env 对于Google客户端id/机密和 USER_GOOGLE_EMAIL。令牌存储在 google_workspace_mcp/store_creds_local/ (用覆盖 WORKSPACE_MCP_CREDENTIALS_DIR).

打开 http://localhost:8002 查看帮助页面;当聊天工具返回身份验证链接时,完成Google OAuth。

2.画布MCP--端口 3001

./scripts/run-canvas-mcp-local.sh

使用Python服务器 canvas-mcp/ (FastMCP+玉米)。首次运行创建 canvas-mcp/.venv 并安装该包。网关发送每个用户的Canvas令牌 https://<domain>/api/v1 在每个MCP请求中 X-Canvas-Token 和 X-Canvas-URL (从入职开始——MCP流程中不需要存在Canvas秘密)。

3.网关--端口 8000

cd apps/gateway
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # if needed; fill all required keys

在 apps/gateway/.env 为设置MCP端点 主机 网络:

MCP_CANVAS_URL=http://127.0.0.1:3001/mcp
MCP_GOOGLE_WORKSPACE_URL=http://127.0.0.1:8002/mcp
MCP_WORKSPACE_BROWSER_URL=http://localhost:8002

然后:

uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

4.Web端口 3000

cd apps/web
cp .env.local.example .env.local
# AUTH0_* + AUTH0_AUDIENCE + GATEWAY_URL=http://127.0.0.1:8000
npm install && npm run dev

打开 http://localhost:3000 → 登录→ Canvas入职培训→ Chat.


稍后:Docker(当你需要一个命令时)

# apps/gateway/.env must exist; compose overrides MCP_* URLs for in-network services
docker compose up --build

网关正在监听 8000;做 不 运行主机 uvicorn 上 8000 同时。

环境变量

书写/HITL

首先实施只读工具。任何日历/电子邮件/画布 写 必须通过a 人类认可 step(LangGraph中断+UI)——接下来是脚手架。

谷歌(日历、Gmail等)

使用 工作区MCP OAuth一次(例如。 http://localhost:8002 Docker)。放 GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET 在 apps/gateway/.env 并允许重定向 http://localhost:8002/oauth2callback 在OAuth客户端上。聊天代理使用 gws__* MCP的工具——网络应用程序中没有单独的“连接谷歌日历”流程。