feat: 增加edge-function交互示例,调用大模型总结会议纪要
一个基于 Next.js 和 Supabase 的实时协同会议记录系统,支持多人实时编辑、任务管理、标签分类和文件上传功能。
复制 .env.example 为 .env.local 并填入您的 Supabase 配置:
.env.example
.env.local
cp .env.example .env.local
# Supabase 配置 NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
在 Supabase SQL 编辑器中依次执行以下脚本:
-- 执行 scripts/01-create-tables.sql
在Supabase项目中创建Edge Function来调用通义千问API,在Supabase控制台进入Edge Functions,点击 Deploy a new function -> Via Editor,在代码编辑器中粘贴下面代码,注意代码中要填入您的通义大模型apiKey,Function name 填写tongyi,然后点击 Deploy function。
// Setup type definitions for built-in Supabase Runtime APIs import "jsr:@supabase/functions-js/edge-runtime.d.ts"; import { OpenAI } from "npm:openai@4.8.0"; // CORS headers const corsHeaders = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'authorization, apikey, content-type', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Content-Type': 'application/json,charset=utf-8' }; const openai = new OpenAI({ apiKey: "your api key", baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1" }); Deno.serve(async (req)=>{ if (req.method === 'OPTIONS') { return new Response('ok', { headers: corsHeaders }); } const { prompt } = await req.json(); const response = await openai.chat.completions.create({ model: "qwen-turbo", messages: [ { role: "system", content: "你是一个专业的会议纪要助手,能够根据会议内容生成结构化的会议纪要。" }, { role: "user", content: prompt } ] }); return new Response(JSON.stringify({ answer: response.choices[0].message.content }), { headers: corsHeaders }); });
meeting-files
pnpm install
pnpm dev
访问 http://localhost:3000 开始使用。
meeting-notes-system-v5/ ├── app/ # Next.js App Router │ ├── meeting/[id]/ # 会议页面 │ └── page.tsx # 首页 ├── components/ # React 组件 │ ├── ui/ # shadcn/ui 组件 │ ├── CollaborativeEditor.tsx │ ├── FileUpload.tsx # 文件上传组件 │ └── ... ├── hooks/ # 自定义 Hooks ├── lib/ # 工具库 │ ├── supabase.ts # Supabase 客户端 │ └── ... ├── scripts/ # 数据库脚本 └── styles/ # 样式文件
components/
hooks/
项目使用 Tailwind CSS,可通过修改 tailwind.config.ts 进行主题定制。
tailwind.config.ts
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
智能会议记录系统
一个基于 Next.js 和 Supabase 的实时协同会议记录系统,支持多人实时编辑、任务管理、标签分类和文件上传功能。
功能特性
技术栈
快速开始
1. 环境配置
复制
.env.example为.env.local并填入您的 Supabase 配置:2. 数据库初始化
在 Supabase SQL 编辑器中依次执行以下脚本:
3. AI服务配置
3.1 创建Supabase Edge Function
在Supabase项目中创建Edge Function来调用通义千问API,在Supabase控制台进入Edge Functions,点击 Deploy a new function -> Via Editor,在代码编辑器中粘贴下面代码,注意代码中要填入您的通义大模型apiKey,Function name 填写tongyi,然后点击 Deploy function。
4. Supabase Storage 配置
meeting-files的存储桶5. 安装依赖
6. 启动开发服务器
访问 http://localhost:3000 开始使用。
使用说明
创建会议
加入会议
文件上传
实时协作
AI会议纪要
项目结构
故障排除
文件上传失败
meeting-files实时功能不工作
数据库连接问题
开发指南
添加新功能
components/目录创建新组件hooks/目录添加相关逻辑样式定制
项目使用 Tailwind CSS,可通过修改
tailwind.config.ts进行主题定制。