基础功能介绍
点击下方标题可展开查看各项功能的详细介绍。
主屏幕 (Home)
弦镜 (聊天应用)
应用的核心,集成了聊天、联系人、动态和个人主页四大功能,是您与AI角色互动的主要平台。
四大主界面
通讯录
(contacts.html
)
管理您的所有AI好友和群聊。您可以创建新角色、发起群聊、查看好友分组、以及进入角色资料页。
动态
(moments.html
)
一个类似朋友圈的功能,您和AI角色都可以在此发布图文动态,并进行点赞、评论等互动。AI角色也会根据其人设和经历,在后台独立发布动态。
我
(me.html
)
您的个人中心。在这里可以管理您的多个人格预设、查看收藏、回忆、关系图谱、管理表情包以及进入世界设定。
- 人格预设
(Persona):
您可以创建多个“你”的身份。每个预设包含不同的头像、昵称、人设等。
- 默认人格: “默认人格”主要应用于未分组的角色、所有未单独绑定人格的群聊,以及决定“我”界面的主头像/昵称和发布动态时的默认身份。
- 关联分组/群聊: 您可以将特定的人格预设应用到某些分组或群聊上。当您在这些关联的对话中发言时,AI会认为您正在扮演这个人格,从而做出更贴合情景的回应。例如,您可以创建一个“严厉上司”的人格并关联到“工作”分组。
- 收藏 (Favorites): 您可以将聊天中的重要消息或动态区的精彩帖子收藏起来,方便日后随时回顾。
- 回忆 (Memories): 您可以查看所有角色创建的日记/回忆,或者是与您定下的约定(倒计时)事件。未完成的倒计时会优先显示在顶部,其次是您收藏的回忆,其余条目则会按照从新到旧的顺序排序。 角色与您对话时会参考您与TA最近的三条回忆。
-
关系图谱 (Relation
Map):
将所有角色和您的不同人格预设之间的关系可视化。
- 连线与箭头: 每条连线代表一个角色对另一个角色的看法,箭头指向被看待的一方。
- 颜色与粗细: 线的颜色代表关系的性质(如恋人、朋友、对手等),粗细则代表好感度的强度。
- 双向关系: 角色之间的关系不是单向的。角色A可能将角色B视为“朋友”,而角色B可能将角色A视为“对手”,这会通过两条不同颜色和粗细的弧线来表示。
- 聚焦查看: 在图谱上单击任意角色或用户的头像,视图将自动缩放并高亮显示所有与该角色直接相关的关系,便于清晰查看。
- 智能过滤: 为避免关系网过于杂乱,好感度在 [-100, 100] 范围内的“普通”关系默认不显示。
-
通话记录 (Call
Log):
在这里可以查看您与所有角色的通话历史。
- 记录会显示通话类型(视频/语音)、发起方(呼入/呼出)和通话时间。
- 点击任意一条记录,可以展开查看本次通话期间的详细对话文字稿。
- 表情包
(Stickers):
您可以添加自定义表情包。支持通过URL或本地上传单个添加,也支持批量导入。
现在,您可以直接粘贴从别处复制的文本列表,AI会自动尝试将其转换为所需的JSON格式,省去您手动复制Prompt去第三方网站转换的步骤。 批量导入后请刷新界面以查看新表情包。批量导入JSON格式与转换Prompt
角色: 你是一个精准的文本到JSON格式转换器。 任务: 你的任务是将用户提供的表情包列表文本,严格按照指定的规则转换为JSON数组格式。 输入文本格式规则: 基础URL为 https:/…… 每一行代表一个表情,格式为 表情名称:代码/文件名.jpg。 输出JSON格式规则: 输出必须是一个完整的JSON数组 [...]。 数组中的每一个元素都是一个对象 {...}。 每个对象必须包含两个键: "name": 值为文本中的“表情名称”。 "url": 值为基础URL和文本中的“代码/文件名.jpg”拼接而成的完整URL。 你的回复只能包含最终的JSON代码块,不要添加任何解释、注释或额外的文字。 需要转换的文本:{下面粘贴世界书}
-
世界设定 (World
Setting):
这里是您世界观的核心。您可以在此处添加或编辑世界观设定、角色背景故事、重要事件等内容。
- 世界书: 记录所有角色的背景故事、重要事件和设定。
- 编年史: 记录所有角色的历史事件和时间线。
聊天室
核心功能
- 发送消息: 输入文本后点击发送按钮或按Enter键。
- 等待回复: 点击闪烁的星星图标,让AI角色对当前对话作出回应。此功能会消耗API额度。
- 长按消息: 长按任意消息气泡可以进行复制、收藏、引用、多选或删除操作。
- 拍一拍: 双击对方或自己的头像,可以触发“拍一拍”互动。
- 查看资料: 点击右上角图标,可以进入角色资料页。
底部功能栏按钮
- 表情: 打开并发送您在“我” -> “表情”中添加的自定义表情。
- 发送图片(描述): 发送关于图片的描述。
- 发送图片(真实): 从相册或本地上传真实图片。为了使用这项功能,需要在设置中使用支持视觉的模型,如Gemini 2.5 Pro等。
- 转账/红包: 在私聊中向对方发起模拟转账,或在群聊中发拼手气/专属红包。
- 发送语音: 模拟发送一条语音消息。
- 外卖代付: 向对方发起一个模拟的外卖代付请求,对方可以同意或拒绝。
- 一起听: 需要关联Spotify。选择一个歌单,与角色一起欣赏音乐。角色可以控制暂停,或者切歌。
- 通话: 与角色发起模拟的语音或视频通话。通话期间,你们的对话会被实时记录。
- 切换主题色: 切换UI元素的主题高亮色来源(您的气泡颜色或对方的气泡颜色)。
音乐
通过关联您的Spotify Premium账号,解锁“一起听歌”功能。首次使用需要登录授权。登录成功后,即可在聊天室中与AI角色分享歌单,共同聆听。
简报
相册
一个公共的图片存储空间。您可以通过URL或本地上传添加图片。如果添加了描述,角色有概率使用图片作为个人主页的背景。不填写描述则只有您可以用其作为聊天室或者主屏幕壁纸。 可以在个性化设置中用作壁纸,或在角色编辑中用作聊天背景。 本地上传功能需要配置Cloudinary服务。
设置
API 连接
配置连接AI模型所需的信息,包括API地址、密钥和模型名称。支持保存和切换多个不同的API方案(例如,一个用于GPT,一个用于Gemini)。 直连则不需要填写反代地址,仅需填写API密匙和选择模型。
图片上传 (Cloudinary)
为了能从本地上传图片,您需要注册一个免费的Cloudinary账号,并在其官网设置中创建一个无签名 (Unsigned)的上传预设 (Upload Preset),然后将您的Cloud Name和Upload Preset名称填写到此处。详细步骤请参考Cloudinary 设置指南。
后台活动
开启后,AI角色们会在后台独立“生活”,可能会主动给您发消息、发布动态、或在群聊里主动发言。注意:此功能会显著增加API费用。 您可以调整活动检测的频率和概率来控制消耗。
它和“离线模拟/简报”有什么不同?
- 后台活动: 是实时的、持续性的。只要您开着应用,角色们就会像真人一样独立生活,随时可能给您发消息或发布动态。
- 离线模拟: 是一次性的、回顾性的。它只在您长时间未打开应用后,在下一次启动时运行,用于总结您“离开”期间世界上发生的大事。
数据管理
导出备份:
将您的所有数据打包成一个JSON文件下载到本地。
导入备份:
从本地选择之前导出的JSON文件,恢复所有数据(会覆盖当前数据)。
云同步:
通过GitHub Gist实现多设备数据同步。详细步骤请参考GitHub Gist
设置指南。
个性化
自定义应用的全局外观。您可以设置主屏幕的壁纸、所有界面的主题高亮色,以及更换全局字体(需要提供字体文件的URL)。 壁纸现在支持三种模式:
- 图片: 使用您提供的URL或从相册选择一张图片作为背景。
- 渐变: 从预设中选择或自定义两种颜色,生成动态的渐变背景。
- 拓扑: 生成动态的、具有科技感的拓扑网络动画作为背景。
世界书
“世界书”是用于定义世界观、角色背景、共同记忆的知识库。AI在生成回复时会优先参考关联的世界书内容,确保对话符合您设定的宏大背景。 您可以在 我 -> 世界设定页面将不同的世界书关联到不同的角色分组上,也可以在角色编辑页面直接关联到单个角色上。注意不要重复在分组和角色上关联同一世界书。 特别地,名为“编年史”的世界书会自动记录由离线模拟生成的事件。
角色主页
这里是角色的个人中心,展示了TA的核心信息和动态。
- 核心信息: 您可以看到角色的头像、昵称、名字,以及通过互动变化的好感度分数。
- 基本资料: 包括根据生日自动计算的年龄和星座、性别以及所属分组。
- 动态入口: 快速进入该角色的个人动态时间线,只看TA发布的内容。
- 日记入口:
查看该角色在与您互动后,私下记录的带有深刻情感或思考的日记。
- 日记中的关键词可能会在后续聊天中被触发,作为角色的“回忆”影响其对话。
- 您可以在日记页面编辑日记的内容和关键词。
- 回忆入口: 查看与该角色相关的回忆(包括倒计时约定)。
角色/群聊编辑
在这里,您可以深度定制角色的方方面面,这些设定将直接影响AI的行为逻辑。
- 基础设定: 修改角色的头像、昵称、名字、生日、性别、人设和所属分组。
- 初始关系设定: 设定该角色对“你”以及对“同分组其他角色”的初始好感度和关系类型(如朋友、恋人)。
- 聊天背景与气泡: 为与该角色的聊天室设置独立的背景图和聊天气泡颜色主题。
-
AI生成气泡样式 (CSS):
- 输入一段自然语言描述(如“我想要一个带粉色描边的半透明玻璃质感气泡”),AI会为您生成对应的CSS代码来实现这个效果。
- 迭代与优化:AI生成代码后会填充到文本框中。您可以保留这些代码,然后在上方的输入框中继续提出修改建议(如“边框再粗一点”),AI会基于现有代码进行修改,实现逐步优化的效果。
第三方服务设置指南
为了使用图片上传和云同步功能,您需要配置两个免费的第三方服务。
Cloudinary 设置指南 (用于图片上传)
Cloudinary 是一个强大的图片和视频管理服务,其免费套餐足以满足本应用的需求。
- 第1步:注册账户
访问 Cloudinary 免费注册页面 并创建一个新账户。 - 第2步:找到您的 Cloud Name
登录后,您会进入控制台 (Dashboard)。在 “Account Details” (账户详情) 部分,找到您的Cloud Name
(云名称),并复制它。 - 第3步:创建上传预设 (Upload Preset)
a. 在顶部导航栏,点击齿轮图标进入 Settings (设置)。
b. 点击 Upload (上传) 标签页。
c. 滚动到底部,找到 Upload presets (上传预设) 部分。
d. 点击右侧的 Add upload preset (添加上传预设) 按钮。 - 第4步:配置上传预设
a. Signing Mode (签名模式) 这一项【必须】从默认的 “Signed” 修改为 Unsigned (未签名)。这是最关键的一步。
b. 您可以为这个预设起一个容易记住的名字(例如 `xphone-unsigned`),也可以使用系统生成的随机名。
c. 其他设置保持默认即可。点击页面底部的 Save (保存) 按钮。 - 第5步:复制预设名称
保存后,您会返回到上传预设列表。找到您刚刚创建的预设,并复制它的 Preset name (预设名称)。 - 第6步:填入 Xphone 设置
回到 Xphone 的“设置”页面,将第2步复制的Cloud Name
和第5步复制的Upload Preset
名称,分别粘贴到对应的输入框中,然后点击保存。
GitHub Gist 设置指南 (用于云同步)
我们使用 GitHub Gist 来存储您的备份数据,实现跨设备同步。您需要一个 GitHub 账户。
- 第1步:创建 Secret Gist
a. 登录 GitHub,然后访问 Gist 网站。
b. 在 “Filename including extension...” (文件名) 输入框中,填写xphone_backup.json
。
c. 在文件内容区域随便输入一些文字,例如{}
。
d. 点击右下角的 “Create secret gist” (创建私密 Gist) 按钮。请务必选择 Secret,不要选择 Public。 - 第2步:获取 Gist ID
创建成功后,浏览器地址栏的 URL 会变成类似https://gist.github.com/YourUsername/abcdef1234567890
的格式。
地址栏最后那串由字母和数字组成的字符串 (例如abcdef1234567890
) 就是您的 Gist ID。请复制它。 - 第3步:创建 Personal Access Token (PAT)
a. 回到 GitHub 主站,点击右上角您的头像,选择 Settings (设置)。
b. 在左侧菜单滚动到底部,选择 Developer settings (开发者设置)。
c. 依次选择 Personal access tokens -> Tokens (classic)。
d. 点击 Generate new token,然后选择 Generate new token (classic)。 - 第4步:配置 Token 权限
a. 在 Note (备注) 栏填写一个描述,例如 `Xphone Sync`。
b. 在 Expiration (有效期) 栏,建议选择 No expiration (无有效期),否则 Token 过期后同步会失败。
c. 在 Select scopes (选择权限范围) 部分,只需勾选gist
这一个权限即可。
d. 滚动到页面底部,点击 Generate token 按钮。 - 第5步:复制您的 Token
页面会显示您新生成的 Token,它以ghp_
开头。这是您唯一一次看到这个 Token 的机会,请立即点击复制按钮,并将它保存在一个安全的地方。 - 第6步:填入 Xphone 设置
回到 Xphone 的“设置”页面,将第2步复制的Gist ID
和第5步复制的Personal Access Token
,分别粘贴到云同步区域的对应输入框中,然后点击保存。
ElevenLabs 设置指南 (用于语音合成)
ElevenLabs 提供了高质量的 AI 语音合成服务,其免费套餐包含每月 10,000 个字符的额度,足以满足个人项目的测试和日常使用。
- 第1步:访问官网并注册
前往 ElevenLabs 官方网站 并点击右上角的 "Sign Up" (注册)。您可以使用邮箱、Google 账户快速创建新账户。 - 第2步:找到您的 API 密钥
登录后,点击页面右上角您的头像图标,在弹出的菜单中选择 API key ( API 密钥)。 - 第3步:创建并复制 API 密钥
选择Create API Key (创建API密钥),之后在弹出菜单中将Restrict Key旁的开关关闭。 然后点击Copy to clipboard将其复制到剪贴板。
请注意: 这个密钥非常重要,不要泄露给任何人。 - 第4步:在 Xphone 中创建并粘贴
a. 回到 Xphone 的“设置”页面,在“TTS 语音服务”板块,点击“新增方案”。
b. 为方案起一个名字(例如 `My ElevenLabs`),然后将第3步复制的 `API Key` 粘贴到对应的输入框中。 - 第5步:保存设置
回到 Xphone 的“设置”页面顶部,点击“保存”按钮,您的 TTS 服务就配置完成了。之后您就可以在角色编辑页面为他们选择喜欢的声音了。
进阶功能详解
世界设定与动态
世界设定 (World Setting)
此页面用于调整AI角色在后台的自主行为逻辑,核心功能是“离线模拟”与“情报网”。
- 离线模拟: 当您离线超过设定的时间后,AI会自动模拟这段时间内角色之间可能发生的互动、关系变化或个人事件,并生成一份简报。这会让角色的故事在您不在的时候也能延续。
- 情报网 (Intelligence Network):
- 工作原理: 当您进入与某个角色的私聊时,如果距离上次搜集情报超过了冷却时间,该角色会秘密地“打探”其社交圈(同分组的好友)最近和您的聊天记录以及他们发布的动态。
- 目的: 这能让角色获取到您与其他人的互动信息,使对话更具深度和真实感。例如,如果角色A通过情报网得知您和角色B聊过某个话题,它可能会在和您的对话中主动提及:“我听说你和B最近在讨论...”。
- 情报触发主动消息: 若开启此选项,当角色通过情报网发现“有趣”的信息时(例如您提到了TA的名字),TA可能会主动开启一段新的对话来询问或评论此事。
- 分组管理: 您可以将不同的“世界书”关联到不同的分组上。该分组下的所有角色在思考和回应时,都会将这些世界书的内容作为最高优先级的背景知识来参考。
动态 (Moments) 互动规则
动态区模拟了一个真实的朋友圈环境,角色之间的互动遵循以下规则:
- 可见性规则: 角色只能看到并互动其同一分组内其他角色以及您发布的动态(除非您设置了分组可见)。
- 提及 (@) 与后续互动: 当您或某个角色在动态中提到了另一个角色后,被提及的角色会收到一条系统通知。当您之后进入与该角色的聊天室时,TA会优先对这条提及TA的动态做出回应(如评论、点赞或私下询问)。这创造了从公开社交到私密对话的自然过渡。
- 评论身份: 角色在动态下发表评论时,其身份和人设将基于其自身绑定的人格预设(如果在“我”->“个人设置”中为其指定了特定人格),而不是您当前使用的全局默认人格。这保证了角色行为的一致性。
AI自主生活与人设
AI角色拥有自己的“生活”,不仅会回应您的消息,还会在后台独立行动。一个详细的人设是驱动这些行为的关键。本节将详细介绍AI的自主行为,并提供一个工具来帮您构建更生动的角色。
AI的自主生活 (AI's Independent Life)
角色的自主行为分为两种,均由其核心人设驱动:
1. 后台活动 (实时在线行为)
当您在“设置”中开启后台活动后,角色们会像真人一样实时地、独立地生活和社交。您可能会观察到他们:
- 主动聊天: 根据人设和最近的事件,突然给您发来私信,开启一个新话题。
- 发布动态: 在“动态”区发布新的文字或图片动态,分享自己的所见所闻或心情。
- 社交互动: 浏览自己可见的动态,并可能进行点赞或评论。
- 群聊活动: 在群聊中,角色可能会随机发起一个话题、发送表情包,甚至是发红包或邀请大家点外卖。
2. 离线模拟 (离线回顾)
当您离线超过设定时间后,此功能会一次性触发。它更侧重于故事推进,模拟并总结您离开期间发生的重大事件。其结果会:
- 在简报应用中生成一份总结报告。
- 将角色间的关系变化、个人目标的重要进展或挫折,自动记入关联世界书的“编年史”中。
生成详细人设的辅助Prompt
为了让AI角色的自主行为更符合您的想象,一个详细的人设至关重要。您可以将以下模板和您的基础人设一起提供给一个强大的语言模型(如GPT-4, Claude 3, Gemini 1.5 Pro等),来生成更丰富、更适用于本应用的角色设定。之后,将生成的结果填入角色的“人设”字段即可。
生成更适用于此网站人设的Prompt
# 角色 你是一个世界级的角色设定扩展器,专注于为一个名为“Xphone”的超真实模拟聊天应用创建角色档案。 # 任务 你的任务是基于我提供的【基础人设】,将其扩展成一个详尽、立体、且能直接应用于“Xphone”后台行为逻辑的角色档案。档案需要明确定义该角色在使用这个模拟手机时的各种行为习惯和内在规则。 # 应用功能背景 角色在应用中可以: - 私聊和群聊。 - 发送文本、图片、语音(文字模拟)、表情包。 - 在“动态”区(类似朋友圈)发帖、点赞、评论。 - 发红包、参与外卖代付。 - “拍一拍”其他角色或用户。 - 拥有好感度会变化的人际关系。 - 在后台独立生活,会主动发起上述行为。 # 输出要求 请严格按照以下格式组织你的输出,直接提供扩展后的人设内容,不要包含任何额外的解释。 ## 核心人设 [这里是你对【基础人设】的提炼和润色,保持其核心魅力。] ## 聊天行为习惯 - **打字风格:** [描述角色的打字习惯。例如:从不使用句号,喜欢用波浪线结尾。喜欢发很多简短的消息而不是一段长文。每句话都带一个emoji。] - **主动性:** [描述角色主动发起对话的倾向。例如:极少主动发起对话,除非有非常重要的事。是社交核心,总是主动开启新话题。] ## 应用功能偏好 - **最喜欢的功能:** [从功能背景中选择1-2个角色最喜欢用的功能。例如:发动态,热衷于分享生活的点点滴滴。] - **最讨厌/绝不使用的功能:** [选择1-2个角色几乎从不使用的功能。例如:极度讨厌语音消息,收到也假装没看见。觉得“拍一拍”很幼稚,从不使用。] - **社交媒体行为:** [描述在“动态”区的具体行为。例如:潜水党,只看不发。是点赞狂魔,给所有朋友点赞。只评论自己感兴趣的特定话题。] - **经济观念:** [描述对红包和转账的态度。例如:视财如命,看到红包必抢,但从不发。对朋友非常大方,经常主动发红包。] ## 绝对行为准则 (内在规则) [列出3-5条该角色绝对会遵守或绝对不会去做的行为准则,这是驱动其后台行为的核心逻辑。] - 例1: 绝对不会在晚上11点后主动给任何人发消息。 - 例2: 无论和谁吵架,都绝对不会是先道歉的那一个。 - 例3: [某个特定好友]发的任何动态,都会无条件第一时间点赞。 - 例4: 如果收到了不喜欢的人发来的消息,会故意已读不回。 --- 请根据以下【基础人设】进行扩展: [在这里粘贴您自己角色的基础人设,例如:“一个傲娇的猫系少年,表面冷漠毒舌,内心却很善良,渴望被理解。喜欢打游戏和看书。”]
高级功能与排错
用于数据管理、问题修复和解答常见疑问。
高级工具
导入/导出角色卡
此功能允许您分享或备份单个角色。导出的 .json 文件包含了角色的核心设定,如:人设、头像库、备注名、分组、聊天背景、气泡主题 等。
请注意:导出的角色卡不会 包含角色的聊天记录、动态、日记、好感度关系等由AI在后续交互中生成的具体内容。
修复聊天记录
此工具会扫描并删除所选角色聊天记录中所有用户不可见的 系统消息 (System Message)。
主要用于修复一些疑难杂症,例如:
- 发起通话时长时间无响应或失败。
- AI在对话中行为异常,可能受到了损坏的隐藏指令影响。
清空聊天记录
此工具会永久删除您与所选角色的 全部 聊天记录,但会完整保留角色的所有设定(人设、头像、好感度等)。
重置角色内容
这是一个更彻底的清理工具。它会保留角色的核心设定(人设、头像等),但会删除该角色 所有 后续生成的AI内容,包括:聊天记录、发布的动态、撰写的日记与回忆、通话记录等。
常见问题与故障排查
遇到问题时,可以先尝试刷新页面。如果问题仍然存在,请参考以下常见情况的解释:
问题:提示“系统正忙,请稍后再试”
原因:
这通常意味着一个AI角色正在后台执行操作(例如,另一个角色正在独立思考、准备给你发消息或发布动态),暂时占用了API通道。您的操作需要排队。
解决方法:
- 稍等片刻(通常几秒钟),然后重试。后台任务通常很快就会完成。
- 切换到手机上的其他应用(或浏览器其他标签页),再切回来。这通常会中断正在进行的后台任务,为您让出API通道。
问题:聊天界面显示“对方正在输入...”,但长时间没有收到回复
原因: 应用已经成功向AI发送了您的消息,但未能收到有效的回复。这几乎总是由API端的问题导致的。例如:
- 网络连接不稳定或中断。
- 您在“设置”中填写的API密钥不正确或已失效。
- API服务提供商(如OpenAI, Google等)的服务器暂时出现问题或过载。
- 您的账户余额不足。
解决方法:
- 检查您的网络连接。
- 前往“设置” -> “API连接”,确认您的API密钥和配置无误。
- 如果多次尝试仍然失败,可以稍后再试,或检查API服务商的官方状态页面。
问题:弹出“AI响应格式错误,无法解析JSON”的警告
原因:
这是因为AI模型没有严格遵守输出JSON对象的格式要求,返回了包含额外文本或格式错误的内容。尽管应用的Prompt已经尽力引导,但这种情况仍可能偶尔发生,尤其是在模型负载较高时。
解决方法:
- 这是最直接有效的办法:点击“等待回复”按钮,重新请求一次。模型第二次通常能给出正确格式的回复。
- 如果连续多次出现此错误,可以尝试编辑您发送的最后一条消息,稍微改变一下措辞,然后重新发送。