Memoh

Long-memory, self-hosted, AI-powered personal housekeeper and lifemate.

Memoh是一个专属于你的AI私人管家,你可以把它跑在你的NAS,路由器等个人设备上,24小时的为你提供服务。

Features

  • 长记忆:Memoh拥有长记忆能力,可以为你的家庭成员提供个性化的服务。他会存储最近一段时间(默认最近15个小时)的上下文,超出时间后则会根据你的需求按需加载记忆
  • 定时任务:Memoh可以帮你创建智能的定时任务,比如:每天早上七点生成一个早餐菜谱,通过Telegram发送给我
  • 聊天软件支持:Memoh可以支持多种聊天软件,比如:Telegram,微信,QQ等常用社交软件,通过直接发送消息与Memoh进行交互,同时Memoh也可以通过事件触发,选择工具主动给你发送消息
  • 文件系统管理:Memoh可以帮你管理你的文件系统,比如:文件搜索,图片分类,文件分享等。他可以创建文件,也可以通过聊天软件发送文件给你;你也可以通过发送文件给他帮你处理。
  • MCP支持:Memoh可以支持多种MCP接口,与多种外部工具进行交互。
  • More...

Message Platforms

Quick Start

环境:

  • PostgreSQL 16+
  • Bun 1.2+
  • PNPM
  • Qdrant
cp .env.example .env
pnpm install
Environment Variables - `DATABASE_URL`: PostgreSQL 连接字符串 - `ROOT_USER`: 超级管理员用户名 - `ROOT_USER_PASSWORD`: 超级管理员密码 - `JWT_SECRET`: JWT 签名密钥 - `QDRANT_URL`: Qdrant 连接字符串 - `REDIS_URL`: Redis 连接字符串

数据库初始化

pnpm run db:push

API Server

pnpm run api:dev

API服务将在 http://localhost:7002 启动。

命令行工具

首先你需要登录:

pnpm cli auth login

按照提示输入管理员用户名和密码。

直接运行以下命令会进入Agent交互模式

pnpm cli

在此之前你需要配置模型,你至少需要配置一个聊天模型,一个嵌入模型,一个摘要模型。

pnpm run model:create --name "GPT-4" --model-id "gpt-4" --base-url "https://api.openai.com/v1" --api-key "your-api-key" --client-type "openai" --type "chat"
  • --name: 模型显示名称
  • --model-id: 模型ID
  • --base-url: 模型API地址
  • --api-key: 模型API密钥
  • --client-type: 模型提供者类型, 可选值为 openaianthropicgoogle
  • --type: 模型类型,可选值为 chatembedding

创建成功后你会得到一个uuid,你可以通过这个uuid来配置你的设置:

pnpm cli config set --chat-model <uuid> --summary-model <uuid> --embedding-model <uuid>
  • --chat-model: 聊天模型uuid
  • --summary-model: 摘要模型uuid
  • --embedding-model: 嵌入模型uuid

然后你就可以正常的使用Memoh了。

你可以设置你的最大上下文加载时间,默认是900分钟,你可以通过以下命令来设置:

pnpm cli config set --max-context-time <minutes>
  • --max-context-time: 最大上下文加载时间,单位为分钟

Telegram Bot

你需要获取你的Telegram Bot Token 然后启动Telegram Service

pnpm telegram:start

Telegram Service将在 http://localhost:7101 启动,这个是endpoint,你需要在Memoh中配置你的Telegram Bot Token

使用Memoh Cli:

pnpm cli platform create

根据提示配置platform

然后你就可以通过Telegram Bot与Memoh进行交互了。

Languages
Go 66.8%
Vue 19.9%
TypeScript 12.6%
Shell 0.5%