使用说明
Weave:ChatGPT原生内存平台
ChatGPT内的可探索内存画布。与朋友一起捕捉、整理和编织回忆。
✨ 从开始 doc.md 获取分步实用构建指南。
快速导航
- doc.md ← 从这里开始 -订购实用的船舶指南v1(里程碑A-D+任务)
- 规格/产品规格.md -产品愿景与用户体验
- 规格/技术规格.md -架构与决策
- schema.sql -带有RLS策略的PostgreSQL模式
现状(2025-10-24)
✅ 平台支柱就位
- ChatGPT UI(Next.js 14)实现了营销主页、内联Weaver卡、内存详细信息编辑器、画布视图、搜索和公共/用户路由。
/api/mcpbridge使用中的清单将ChatGPT工具调用转换为FastAPI请求chatgpt-mcp-manifest.json.- FastAPI后端提供全有线路由器,用于存储、搜索、编织链接、权限、邀请、工件、公共蛞蝓、关注、图形、导出,以及健康/速率限制/JWT验证。
- 索引工作者正在收听
memory_event,重建TSV和pgvector嵌入,并在以下情况下优雅降级OPENAI_API_KEY缺席。
⏳ 杰出工作(跟踪 ai-docs/sprint-2025-10-24.md)
- 将本地Node.js升级到≥18.17以满足Next.js运行时要求,并重新验证Tailwind/PostCSS升级。
- 通过重新引入边缘增强项和对非文本层进行排队索引来完成混合搜索奇偶校验。
- 为无Docker的Postgres设置和更新的UI/后端覆盖率刷新README/doc引导。
- Harden自动化测试(针对实时Postgres、Canvas交互等的集成测试)。
立即关注
- Node.js升级:使用
nvm,asdf,或Volta安装节点≥18.17,然后重新运行npm run build/npm run dev确认Tailwind/PostCSS修复。 - 混合搜索波兰语:在中实施边缘增强组件
services/api/app/routers/search.py并确保层附加排队索引。 - 文档刷新:更新
doc.md/非Docker Postgres流程的README入门指南,并捕捉当前的功能界面。 - 测试覆盖率:运行
services/api/tests/test_api.py针对本地Postgres(使用pgvector)并记录结果;根据需要扩展UI烟雾测试。
里程碑
| 里程碑 | 目标 | 接受 |
|---|---|---|
| A-捕获和召回 | 创建/锁定/搜索/详细视图。已部署。 | P0端点工作,搜索<2s p95,端到端工作 |
| B-编织和帆布 | 链接记忆,画布上有更丰富的卡片,缩放进入 | 创建编织,看线,平滑导航 |
| C-分享和邀请 | 基于角色的访问、邀请流、公共基础 | 邀请用户、接受、附加层、slug解析 |
| D-公共镜像 | 关注、公共配置文件、可选事件 | 公共页面<500ms p95缓存 |
目录结构
weave/
├── doc.md ← BUILD GUIDE (start here!)
├── schema.sql # PostgreSQL schema + RLS
├── README.md # (this file)
│
├── services/api/ # Python FastAPI backend
│ ├── app/
│ │ ├── main.py
│ │ ├── models.py # SQLAlchemy ORM + Pydantic models
│ │ ├── deps.py # JWT auth + RLS-aware sessions
│ │ ├── routers/
│ │ │ ├── memories.py # CRUD, layers, permissions, suggestions
│ │ │ ├── search.py # Hybrid search (edge boost pending)
│ │ │ ├── weave.py # Memory connections
│ │ │ ├── invites.py # Invite create/accept
│ │ │ ├── follows.py # Follow graph + feeds
│ │ │ ├── public.py # Public slugs
│ │ │ ├── graph.py # Canvas graph feed
│ │ │ └── artifacts.py # Upload/download proxies
│ │ ├── workers/
│ │ │ └── indexing.py # Embedding + TSV refresh worker
│ │ └── db/
│ │ ├── migrations/ # SQL files (run in order)
│ │ └── rls.sql
│ ├── requirements.txt
│ ├── .env.example
│ └── docker-compose.yml
│
├── apps/
│ ├── chatgpt-ui/ # Primary Next.js ChatGPT App
│ │ ├── app/
│ │ │ ├── api/
│ │ │ │ ├── mcp/ # JSON-RPC bridge to FastAPI
│ │ │ │ └── proxy/ # REST proxy to FastAPI
│ │ │ ├── canvas/ # Canvas experience
│ │ │ ├── memory/ # Memory detail route
│ │ │ ├── search/ # Search UI
│ │ │ ├── p/, u/, a/ # Public slugs, author pages, artifact redirect
│ │ │ └── globals.css # Tailwind entry (v4)
│ │ └── package.json
│ │
│ └── next-app/ # Earlier stub preserved for reference
│
├── specs/
│ ├── product-spec.md # Vision, UX, features
│ ├── technical-spec.md # Stack, architecture
│ └── api-docs.md # API reference (TODO)
│
└── docs/
├── DEPLOY-RAILWAY.md # Railway deployment guide
└── ...
技术栈
| 组件 | 选项 | 注释 |
|---|---|---|
| 前端 | Next.js 14(Vercel入门版) | ChatGPT应用软件开发工具包 |
| UI桥 | Node.js MCP垫片 | /api/mcp 将代理路由到Python |
| 后端 | Python 3.11 FastAPI | 铁路集装箱 |
| 数据库 | PostgreSQL 14++pgvector | 多租户的RLS策略 |
| 搜索 | 混合得分 | 0.55余弦+0.35 BM25+0.10边缘提升 |
| 嵌入 | OpenAI text-embedding-3-large |
1536个维度 |
| 存储 | Backblaze B2 | S3兼容,10GB免费,通过签名URL播放视频/图像 |
| 认证 | JWT | JWKS基于URL的验证 |
| 部署 | Vercel+Railway | 完全管理,没有DevOps |
地方发展
一个命令开发
如果你安装了Docker、Python 3.11+和Node≥18.17,你可以从repo根目录用一个命令启动所有东西(Postgres+migrations+FastAPI+Next.js):
make dev
这将启动:
- 端口5432上带有pgvector的Postgres(容器名称:
weave-pg) - FastAPI已打开http://localhost:8000
- Next.js用户界面打开http://localhost:3000
使用Ctrl+C停止应用程序进程。数据库容器保持运行以加快重启速度。要稍后停止,请执行以下操作:
make down && docker stop weave-pg
1.启动PostgreSQL+后端
cd services/api
# Run migrations in order (PostgreSQL must be running and pgvector enabled)
psql "$DATABASE_URL" -f app/db/migrations/0001_init.sql
psql "$DATABASE_URL" -f app/db/migrations/0002_idempotency.sql
psql "$DATABASE_URL" -f app/db/migrations/0003_core_locked_at.sql
psql "$DATABASE_URL" -f app/db/migrations/0004_memory_event.sql
psql "$DATABASE_URL" -f app/db/rls.sql
# Install and run FastAPI
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000
没有Docker? 使用本地Postgres 14+实例
vector已安装扩展。更新DATABASE_URL(例如postgresql://localhost:5432/weave)在运行上述迁移之前。
2.启动索引工作器(可选)
cd services/api
source .venv/bin/activate
python app/workers/indexing.py
3.启动ChatGPT用户界面
cd apps/chatgpt-ui # or next-app
npm install
PYTHON_API_BASE=http://localhost:8000 npm run dev
4.在本地使用该应用程序
- 在上创建内存
http://localhost:3000用Weaver牌。 - 打开画布
http://localhost:3000/canvas然后单击节点以输入详细信息。 - 公共页面位于
/p/{slug}以及作者页面/u/{handle}.
关键实施细节(来自doc.md)
端点模式:
- 路线:
/v1/*前缀 - 请求/响应:包括
query+results: [{memory, score, reasons}] - Idempotency:通过create/lock上的幂等密钥头
RLS和认证:
- 每个请求集
SET LOCAL app.user_id = '<uuid>'(参见deps.py) - 政策强制执行:所有者看到所有,贡献者看到+写,观众只看到,公众=任何人
搜索评分:
hybrid_score = 0.55 * cosine_similarity + 0.35 * ts_rank + 0.10 * edge_boost
cosine_similarity:叙事嵌入的向量距离ts_rank:PostgreSQL全文搜索(TSV列)edge_boost:+0.1(如果内存连接到查询上下文)
索引触发器:
- 开
core锁定和文本/反射层附加 - 构建文档:
title + core.narrative + [text_layers] + [captions] - 更新
tsv和embedding列
部署
请参阅部署指南:
DEPLOY.md-快速部署指南(Render+Vercel)RENDER-SETUP.md-详细的渲染后端设置VERCEL-SETUP.md-Vercel前端设置BACKBLAZE-B2-SETUP.md-Backblaze B2存储(视频/图像)DOMAIN-SETUP.md-自定义域配置
关键环境变量:
DATABASE_URL(渲染PostgreSQL)JWT_JWKS_URL(职员认证)OPENAI_API_KEY(嵌入)AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY(回火B2)S3_ENDPOINT_URL(Backblaze B2端点)ALLOWED_ORIGINS(CORS)
后续步骤
→ READ doc.md 对于构建指南
然后:
- 检查中的现有代码
services/api/ - 从任务#1:JWT验证开始
deps.py - 按顺序执行任务(它们彼此取消阻止)
- 每次部署前进行本地测试
参考文献
- PostgreSQL RLS:https://www.postgresql.org/docs/current/ddl-rowsecurity.html
- Vercel ChatGPT应用程序:https://vercel.com/docs/ai
- 铁路文件:https://docs.railway.app
- OpenAI嵌入:https://platform.openai.com/docs/models/text-embedding
- FastAPI:https://fastapi.tiangolo.com
