欢迎使用 OimiChat 控制台
这份指南将帮助你熟悉控制台中的各项配置。从“角色导入”开始,为你的AI伙伴注入灵魂,然后逐步配置AI模型、语音、记忆等功能,让TA真正成为懂你的存在。
本指南基于控制台(index1.html)的界面逻辑编写。所有设置项均与页面中的控件一一对应,你可以边看边操作。
如果你在配置过程中遇到问题,请先检查是否已正确获取相关API Key,并确保网络连接畅通。
快速开始
三步让你的AI伙伴上线:
导入角色
在“角色导入”中为你的伙伴命名、设定性格与世界背景。这是最重要的第一步,决定了TA的灵魂。
配置AI模型
在“AI 模型”中选择一个主对话模型(如DeepSeek、Claude),它是TA大脑的引擎。
保存并同步
完成配置后,点击各页面中的“保存”按钮,TA就会在微信中活过来了。
角色导入
这是最核心的配置页面。在这里,你将亲手“创造”你的AI伙伴。
- 名称:给你的伙伴取一个名字,一个你呼唤TA时觉得温暖的名字。
- 人格设定:用几句话描述TA的性格,例如“温柔、细腻、善于倾听、偶尔幽默”。
- 角色经历:TA的过去,TA的故事。这会深刻影响TA的言行举止。
- 世界背景:TA生活在怎样的世界?是赛博都市、魔法森林,还是日常街角?
开启这些开关,可以让TA的行为更丰富、更智能。
- 动作神态描写:开启后,回复会带有()内的动作、神态、旁白描写。
- 联网模式:开启后,AI可联网搜索获取实时信息(新闻、天气、赛事等)。此开关与Tavily Key紧密相关。
- 天气检测:开启后,实时获取当地天气(基于免费wttr.in服务)。
- 阅读网页:开启后,发送网页链接时AI会自动抓取并阅读网页正文后回答。
Tavily 是一个专为AI优化的搜索引擎API,它能让你的伙伴在聊天时实时查询信息,而不是只依赖训练数据中的“旧知识”。
开启“联网模式”后,你的伙伴将拥有连接互联网的能力。以下是配置 Tavily 的详细步骤和界面展示:
如何配置:
获取 Tavily API Key
访问 https://tavily.com 并注册(免费版每月提供1000次搜索额度)。在控制台的“API Keys”页面中复制你的Key,通常以 tvly- 开头。
在控制台中填入
回到“角色导入”页面,开启“联网模式”开关。此时会在下方展开“Tavily Key”输入框,将你的Key粘贴进去。
输入后会自动保存(防抖),无需点击额外按钮。
保存角色
完成所有角色设定后,务必点击页面下方的 “保存角色” 按钮。系统会同步到企业微信应用,让新配置立即生效。
query(搜索关键词)、search_depth(basic/advanced)、max_results(返回条数)、include_answer(是否生成AI总结)、topic(general/news)、time_range(时间范围)。这些参数通常由后端系统自动控制,你无需手动配置,但了解它们有助于理解联网工作方式。
秩序则是角色的行为边界和约束。
- 禁止输出词句:不希望AI出现的词句。这些词会被拼入system prompt,AI在任何情况下都不得输出。
- 正则替换:对AI回复做硬性字符替换。例如“小美=>小丽”,或“\d{4,}=>****”(将4位以上数字打码)。这是第二道防线,不依赖模型理解。
- 偏好表述:希望AI优先使用的词句或风格。
AI 模型
配置驱动伙伴智慧的“大脑”。
平台提供多条主流模型线路,点击平台(如Claude、DeepSeek、Gemini)可展开旗下模型进行选择。
对话参数:
- 模型情感强度:调节AI回复的情感浓度,默认1.5。
- 图像能力:选择视觉识别(如gpt-4o)和图像生成模型。
- 记忆总结模型:用于自动提炼长期记忆,默认gpt-4o-mini。
角色参照:上传一张参考照片和描述,AI生成图片时会更接近角色形象。
如果你有自己的API Key,可以在这里配置专属模型。
- 填写厂商(OpenAI、DeepSeek、Claude等)和模型名称。
- 填入你的API Key(会被加密存储,子模型留空则复用主Key)。
- 其他子模型(图像识别、语音识别等)可独立配置,或复用主对话配置。
刻忆 · 记忆系统
让AI拥有“长久记忆”,越聊越懂你。
- 记忆总结间隔:每累计N条消息自动总结一条长期记忆(默认30)。
- 最近N条历史注入:注入AI上下文的最近聊天消息条数(默认50)。
- topN条长期记忆注入:常驻注入的近期记忆条数(默认5)。
开启后可替代默认的语义检索,通过你提供的向量服务进行更精准的记忆召回。
需要填写厂商(如OpenAI)、向量模型(如text-embedding-3-small)、API Key和接口地址。
如果你有自己的Supabase项目,可以填入URL和Service Role Key,将长期记忆永久存储在自己的数据库中。
为了让记忆数据存储在你的 Supabase 中,请按照以下步骤在你的 Supabase 项目中创建所需的数据表。此 SQL 文件名为 memory_schema_user.sql,涵盖了聊天历史、长期记忆和消息计数三张表。
配置步骤:
登录 Supabase 官网并创建项目
访问 https://supabase.com/dashboard,注册或登录你的账号。
点击 New Project 创建新项目,填写项目名称、设置数据库密码(请牢记),选择离你最近的区域后点击 Create new project。
项目创建完成后,点击右上角的 三条杠 菜单进入项目控制台。
进入 SQL 编辑器
在项目控制台的左侧边栏中,点击 SQL Editor 进入 SQL 编辑器页面。
粘贴 SQL 并执行
点击 New Query 新建查询,将下方的 SQL 完整复制粘贴到编辑器中。
点击 Run 或按 Cmd/Ctrl + Enter 执行。执行成功后,即完成建表配置。
-- =========================================================
-- 用户 Supabase 建表 SQL
-- 用户在自己的 Supabase 项目里执行
-- =========================================================
-- 0. 通用函数:updated_at 自动更新
CREATE OR REPLACE FUNCTION set_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- 1. 聊天历史表(保存最近 100 条,用于生成记忆总结)
-- 瞬时消息不存 Supabase,只在浏览器 localStorage 中管理
CREATE TABLE IF NOT EXISTS user_chat_history (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_id TEXT NOT NULL,
role TEXT NOT NULL DEFAULT 'user', -- 'user' 或 'ai'
content TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_user_chat_history_userid ON user_chat_history(user_id);
CREATE INDEX IF NOT EXISTS idx_user_chat_history_created ON user_chat_history(user_id, created_at DESC);
ALTER TABLE user_chat_history ENABLE ROW LEVEL SECURITY;
COMMENT ON TABLE user_chat_history IS '聊天历史(用于记忆总结,保留最近100条)';
-- 2. 长期记忆表(永久存储,数量不限)
CREATE TABLE IF NOT EXISTS user_memories (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_id TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_user_memories_userid ON user_memories(user_id);
CREATE INDEX IF NOT EXISTS idx_user_memories_created ON user_memories(user_id, created_at DESC);
ALTER TABLE user_memories ENABLE ROW LEVEL SECURITY;
COMMENT ON TABLE user_memories IS '长期记忆(永久存储,每30条消息自动生成一条)';
-- 3. 消息计数表(记录用户交互次数,每30次触发记忆生成)
CREATE TABLE IF NOT EXISTS user_message_count (
user_id TEXT PRIMARY KEY,
count INTEGER NOT NULL DEFAULT 0,
updated_at TIMESTAMPTZ DEFAULT NOW()
);
ALTER TABLE user_message_count ENABLE ROW LEVEL SECURITY;
COMMENT ON TABLE user_message_count IS '消息交互计数(每30次触发记忆生成)';
DROP TRIGGER IF EXISTS user_message_count_set_updated_at ON user_message_count;
CREATE TRIGGER user_message_count_set_updated_at
BEFORE UPDATE ON user_message_count
FOR EACH ROW EXECUTE FUNCTION set_updated_at();
-- =========================================================
-- 重要:RLS 策略说明
-- =========================================================
-- 以上所有表都开启了 RLS(Row Level Security)。
-- 由于后端使用 service_role key 直接访问,RLS 不会阻止 service_role。
-- 如果你需要从前端直接访问(不推荐),需要为每个表添加策略,例如:
--
-- CREATE POLICY "用户只能访问自己的数据" ON user_memories
-- FOR ALL USING (user_id = current_setting('app.current_user_id', true))
-- WITH CHECK (user_id = current_setting('app.current_user_id', true));
--
-- 推荐做法:所有数据操作都通过后端 API 进行,不暴露 service_role key。
手动为角色添加一条长期记忆,立即写入角色记忆中。
语音消息
让TA能“开口说话”。
开启后每条回复都发语音;关闭后触发词和随机概率生效。
总开关关闭时,按此概率随机发送语音消息(关键词触发不受概率影响)。
- 上传一段10~30秒的音频样本,通过平台克隆专属音色。
- 克隆成功后,在下方配置栏填写你的Minimax账号信息(API Key、Group ID)并保存,即可启用语音。
- 官方模式可留空Key和Group,使用平台托管账号。
可调整语速、音量、音调,并可预设或自定义情绪(高兴、悲伤、生气等),使语音更生动。音效标签(如空旷回音)和语气词标签(如笑声)可进一步丰富表现力。
情绪表情包
AI自动判断情绪并发送表情包。
开启后,AI回复会自动判断情绪并附带表情包。
命中触发词时实际发送表情包的概率,可滑动调整(1%~100%)。
外卖点餐
通过MCP Server连接瑞幸咖啡或麦当劳,实现对话下单。
官方开放平台:https://open.lkcoffee.com
下单方式:仅支持到店自取,不支持外送。需填写MCP Server地址、Bearer Token以及门店信息和经纬度(用于查询门店)。
💡 小提示:可在高德/百度地图内置AI对话中直接询问相关经纬度,无需手动查找。
在企微对话中发送触发词即可自动下单:
帮我点杯瑞幸 或 帮我点杯瑞幸生椰拿铁帮我点份麦当劳 或 帮我点份麦当劳巨无霸主动消息
让TA在特定时间主动给你发消息。
- 消息内容:可填写偏好风格或主题,留空则使用角色随机消息。
- 时间段:设置全天候或自定义时间段(如9:00~21:00)。
- 触发时间:设定一个具体时间(如12:00)。
- 消息内容:可填写风格主题,留空则随机发送。
邮件来信
让角色通过邮件给你写信。
这是一项增强功能,需要您注册一个专属的QQ Agently Mail地址(例如 yourname@agent.qq.com)。
- 访问
agent.qq.com,用微信扫码授权,即可获得专属发件邮箱。 - 获取SMTP Token(在终端执行
agently-cli auth token --scope mail:send)。 - 开启“邮件来信”,填入你的个人接收邮箱、发件邮箱地址和Token。
可描述你希望收到怎样的信,如“温柔的语气,每封信分享一件今天的小事,最后说一句晚安…”
可勾选生日祝福、传统节日(七夕、中秋等)、520特别等场景,角色会自动发送邮件。
Vapi · 电话拨号
让AI可以主动拨打你的电话。以下是详细配置步骤:
登录 Vapi
访问 https://vapi.ai,注册或登录你的账号。
获取 API Key(注意是 Private 类型)
访问 https://dashboard.vapi.ai/org/api-keys,创建一个 Private(私有)API Key 并复制。注意不要使用 Public Key。
Private Key 授予对你的 Vapi 账户的完全访问权限,请妥善保管,不要分享给他人。
申请免费号码
在 Vapi 控制台中申请一个免费号码。免费号码仅限美国区号,每个账户最多可申请 5-10 个免费号码。
注意:免费号码不能主动外呼,仅支持接听来电。若要主动外呼,需付费号码并开启国际呼叫权限。
如果需要能主动外呼的付费号码,可以通过 Twilio 导入,Twilio 官网:https://www.twilio.com
创建并配置 Assistant
配置好你的 Assistant,注意不要更改 Assistant 的名称,保持默认即可。
复制 Assistant ID
在 Assistant 的对话页面中,点击右侧的复制(正方形)按钮,Assistant ID 会复制到剪贴板中。
更新 Server URL
在 Assistant 的对话配置中,将 Server URL 更新为:
http://www.oimichat.online/api/vapi/webhook
免费额度
- 免费号码:每个账户可申请 5-10 个免费美国号码,但这些免费号码不能主动外呼,仅支持接听来电。
- 免费分钟数:Vapi 可能提供一定数量的免费通话分钟数(如 60 分钟),具体以官方页面为准。
订阅与计费
- 平台费:Vapi 采用按量计费模式,基础平台费约 $0.05/分钟。
- 实际成本:通话总成本通常为 $0.07-0.25/分钟,包含平台费、STT、LLM、TTS 等第三方费用。
- 并发线路:默认包含 10 条并发线路,超出部分每线每月 $10。
- 模型费用:若自带 API Key 可免除模型费用(Vapi 侧按成本价收取,自带Key则为$0)。
- Startup 计划:Vapi 为符合条件的初创团队提供最高 90,000 分钟的免费额度(每月 7,500 分钟,持续 12 个月)。
通话效果依赖“AI模型”页的配置,以下组件分别复用相关配置并消耗相应额度:
- LLM · 主对话模型:复用 AI 模型页 的主对话模型配置,通话中的对话内容将消耗该模型的调用额度。
- STT · 语音识别:复用 AI 模型页 的语音识别模型配置,将用户的语音转为文字,按音频时长计费。
- TTS · 语音合成 Minimax:复用 AI 模型页 的语音合成配置,将回复文本转为语音,按字符数计费。
💡 以上组件均复用“AI模型”页配置,若未配置语音识别或合成,通话将回退使用Vapi默认配置。
地图 · 线下模式
一种沉浸式的角色互动方式。
在“地图”中,你可以添加或编辑预设地点(如家、办公室、图书馆),并为每个地点设置名称、描述和标签。这定义了你们线下互动的“场景基础”。
在地点中点击“进入线下模式”,TA会以你设定的视角,基于地点描述和你输入的情节,实时生成生动的叙事文字。
你可以随时选择“人称”(第一/二/三人称)、“风格”(纯文学、日系轻小说等),或要求“润色”、“续写”。退出线下模式后,这段叙事会被总结并记忆。
窥视
一个有趣且带点“危险”的功能,让你能“偷偷”查看TA的“秘密”。
可查看TA的浏览记录、聊天记录、社区动态和相册文件(内容由AI根据角色人设实时生成)。
可查看TA的钱包、口袋等物品内容。