跳转到主要内容

安装

Memorose 由 Rust API 服务和独立的仪表盘 UI 组成。

前置条件

  • Rust 工具链
  • Node.js 和 pnpm,用于仪表盘
  • 用于 embedding 和 consolidation 的 LLM 提供商密钥
  • 可选:jq,用于命令行示例

克隆仓库

git clone https://github.com/ai-akashic/Memorose.git
cd Memorose

环境配置

复制示例环境文件:
cp .env.example .env
至少需要设置提供商密钥和模型名:
GOOGLE_API_KEY=your_google_api_key_here
LLM_MODEL=gemini-2.0-flash
EMBEDDING_MODEL=text-embedding-004
如果你想通过环境变量明确指定 provider,优先使用:
MEMOROSE__LLM__PROVIDER=Gemini
或者:
MEMOROSE__LLM__PROVIDER=OpenAI
OPENAI_API_KEY=your_openai_api_key_here
如果你不想看到默认仪表盘密码告警,还可以设置:
DASHBOARD_ADMIN_PASSWORD=change-me

配置

请根据 crates/memorose-common/src/config.rs 中的当前 schema 自行创建 config.toml,也可以从 config.example.toml / config.toml.example 起步,并始终以 config.rs 作为最终权威来源。 一个最小起步配置如下:
[llm]
provider = "Gemini"
model = "gemini-2.0-flash"
embedding_model = "text-embedding-004"

[storage]
root_dir = "./data/node-1"

[raft]
node_id = 1
raft_addr = "127.0.0.1:5001"
heartbeat_interval_ms = 500
election_timeout_min_ms = 1500
election_timeout_max_ms = 3000
snapshot_logs = 1000000
auto_initialize = true

[worker]
llm_concurrency = 5
decay_interval_secs = 60
prune_threshold = 0.1
consolidation_interval_ms = 1000
community_interval_ms = 1000
insight_interval_ms = 30000
enable_auto_planner = true
enable_task_reflection = true
auto_link_similarity_threshold = 0.6
tick_interval_ms = 100

[reranker]
type = "weighted"
如果要开启内部基于模型的 arbitration,可增加 reranker 配置段:
[reranker]
type = "arbitrator"
model = "gemini-3.1-flash-lite-preview"
max_candidates = 32
fallback_to_weighted = true

启动服务栈

推荐的本地启动方式:
./scripts/start_cluster.sh start --clean --build
这会在本地 cluster 模式下启动 300030013002 三个后端节点,并在 3100 启动仪表盘 UI。 如果你只想跑一个本地节点:
./scripts/start_cluster.sh start --mode standalone

手动启动服务端

如果你只需要 API 服务:
cargo run --release -p memorose-server

Docker reranker 配置

Docker 镜像会在 3000 启动 API 服务,在 3100 启动仪表盘。Reranker 模式仍通过同一套 MEMOROSE__* 环境变量配置:
docker run -d \
  --name memorose \
  -p 3000:3000 \
  -p 3100:3100 \
  -v memorose_data:/app/data \
  -e GOOGLE_API_KEY="your_google_api_key_here" \
  -e MEMOROSE__LLM__MODEL="gemini-3.1-flash-lite-preview" \
  -e MEMOROSE__LLM__EMBEDDING_MODEL="gemini-embedding-2-preview" \
  -e MEMOROSE__RERANKER__TYPE="arbitrator" \
  -e MEMOROSE__RERANKER__MODEL="gemini-3.1-flash-lite-preview" \
  -e MEMOROSE__RERANKER__MAX_CANDIDATES="32" \
  -e MEMOROSE__RERANKER__FALLBACK_TO_WEIGHTED="true" \
  dylan2024/memorose:latest

验证安装

检查根端点:
curl http://127.0.0.1:3000/
预期响应:
Memorose is running.

仪表盘

  • 仪表盘 UI:http://127.0.0.1:3100/dashboard
  • API 重定向:http://127.0.0.1:3000/dashboard
  • 默认登录:admin / admin
首次登录后,响应里可能包含 must_change_password: true,直到你设置新密码。
如果你使用自己的 docker-compose.ymldocker run 部署仪表盘,必须在仪表盘容器上设置 DASHBOARD_API_ORIGIN 指向后端 API,例如 DASHBOARD_API_ORIGIN=http://memorose-node-0:3000。否则登录和仪表盘代理请求会因 connect ECONNREFUSED 127.0.0.1:3000 失败。