Skip to content

Latest commit

 

History

History
210 lines (149 loc) · 15.6 KB

README.zh.md

File metadata and controls

210 lines (149 loc) · 15.6 KB

PsyDI

English | 简体中文(Simplified Chinese) | 🔥PsyDI 论文

PsyDI 简介

PsyDI 是一款多模态,交互式的心理测评聊天机器人,旨在对用户的多模态输入进行互动分析,从而探索用户的潜在认知模式,最终判定用户的 MBTI(Myers-Briggs Type Indicator)。此外,PsyDI 还为每位用户详细分析的性格分析报告和定制化的生成图。我们正在不断改进 PsyDI,并即将推出如 MBTI 画廊等新功能,期待您的宝贵反馈!

访问 PsyDI:中文版 | 英文版

💥 最新消息!

  • 我们正在逐步更新经典角色 MBTI 画廊:
角色 简介 MBTI 生成图
约尔·福杰(间谍过家家) 约尔·福杰是一名身怀绝技,但心地善良的杀手。她伪装成政府官员,机缘巧合下成为了《间谍过家家》中临时家庭不可或缺的一员。 ISFJ
阿尼亚·福杰(间谍过家家) 在《间谍过家家》中,阿尼亚·福杰是一个具有读心能力的小女孩。她发现了黄昏的真实身份,并用读心能力被黄昏收养,组建了临时家庭,在临时家庭的一番秘密活动中扮演了关键角色。 ENFP
金克斯(英雄联盟) 金克丝是《英雄联盟》中的一名无政府主义者,也是一名热爱爆炸的神射手。她以混乱的风格和双持枪械在战场上释放冰雹风暴而闻名。 ESFP
维克托(英雄联盟) 维克多是《英雄联盟》中一位才华横溢、毫不留情的发明家,他利用先进的海克斯技术操纵战场,无情地消灭敌人。 INTJ
菲比·布菲 (老友记) 菲比·布菲是《老友记》中一个独具魅力的角色,她以古怪、幽默和非传统的个性著称,拥有一系列独特的生活经历和人生观。菲比曾是一名街头艺人,她创作的歌曲充满了个人特色和幽默感。她与生物学父亲的关系和对动物的热爱,以及她在朋友中的支持和关爱,都为剧集增添了许多欢乐和色彩。她的人生充满了不可预测的转折和奇遇,使她成为六位主角中不可或缺的一员。 ENFP
黄昏 (间谍过家家) 在《间谍过家家》中,黄昏是福杰家的一家之主,也在东国从事谍报活动。他为了执行间谍任务而临时组建了家庭,收养了原是孤儿的阿尼亚。随着时间的推移,原本专注于任务的黄昏开始真心在意临时家庭,开始认真思考该如何在任务结束后永远安置她们并隐暪自己是间谍的秘密。 INTJ
钱德勒 (老友记) 钱德勒·宾(Chandler Bing)是美剧《老友记》中的一个角色。他是罗斯的大学室友,幽默风趣,经常以自嘲的方式逗乐大家。他与莫尼卡发展出一段浪漫关系,并最终结婚。钱德勒以他的机智和幽默感著称,是剧中的搞笑担当。 ENTP
安陵容 (甄嬛传) 在紫禁城内,甄嬛和安陵容曾是亲密无间的朋友。但家族的压力和其他嫔妃的挑拨使安陵容的心态发生了变化,她开始嫉妒甄嬛,渴望通过算计和手段,让自己在皇帝心中的地位超越甄嬛。 ISFJ
皇上&皇后 (甄嬛传) 在电视剧《甄嬛传》的设定中,皇上雍正帝和皇后是少年夫妻,在雍正还是雍亲王的时候结缘。但随着时间的推移,他们的关系变得复杂和曲折。 ISFJ
祁煜 (恋与深空) 祁煜是《恋与深空》中的男主角之一,出生自海洋文明“利莫里亚”,是一位独树一帜的天才艺术家。虽然有时显得有些倔强和不易接近,但内心深处却有着强烈的责任感和对情感的重视。 INFP
秦彻 (恋与深空) 秦彻是《恋与深空》中的男主角之一,他是菲罗斯星有史以来悬赏金额最高的罪犯,也是唯一一个从时空监狱里越狱成功的传说。他以坚定的领导力、果断的行动和深思熟虑的决策,展现出对重要人物的深情关怀和强烈责任感。 ENTJ
沈星回 (恋与深空) 沈星回是《恋与深空》中的男主角之一,是现任猎人协会的深空猎人。他展现出非凡的耐心和一种超脱世俗的佛系态度,以一种温柔而平和的方式与世界相处,同时在人际交往中保持着适度的距离。 ISTP
黎深 (恋与深空) 黎深是《恋与深空》中的男主角之一,是一位才华横溢的心脏外科医生。他珍视独处和自我反思,以冷静分析和策略规划面对挑战,对重要的人则展现出深情的关怀和强烈的责任感。 INTJ
日向翔阳 (排球少年) 日向翔阳是《排球少年》中的男主角,是乌野高校排球部的副攻手。他以开放和活力感染他人,展现出顽强的斗志和适应力,同时在团队中以温暖的支持和鼓励成为核心,体现了他对人际关系的重视和对生活的热爱。 ESFP
五条悟 (咒术回战) 五条悟是《咒术回战》中的一个角色,他是一位特级咒术师。他以轻松幽默的方式与人交流,展现出高傲的智慧光芒,同时在面对挑战时,表现出不屈不挠的拼搏精神和策略思维。虽然在战斗中展现出冷静和计算,但他对学生和同伴表现出深切的关心和支持。 ENTP

导航

🤩 快速开始

PsyDI 的使用方式很简单!按照以下步骤,您就可以开始自我发现之旅:

🚀 在线访问 PsyDI: 访问我们的网站直接在线访问 PsyDI。无需下载或安装!

📝 开始测试:

  • 进入测验后,您可以根据提示选择最能代表您的标签,这有助于 PsyDI 根据您的标签来定制后续测试。
  • 接下来,您需要分享您最近喜欢的一首歌,以及您最近的感悟或想法,这些信息便于 PsyDI 围绕您的兴趣展开交流。

💡 探索您的个性:

  • 在探索章节中,PsyDI 将根据您提供的标签,向您提出一系列问题,便于 PsyDI 对您基本了解。

💬 交互式聊天:

  • PsyDI 将与您交互聊天,深入探讨先前提到的话题。这个互动过程通常包括 12-15 个问题,从多个角度让 PsyDI 发掘您的认知模式。

详细分析:

  • 最后,PsyDI 将为您提供一份详细的 MBTI 测试结果与性格分析报告。这份分析报告能够帮助您更好地发掘自己的个性倾向。
  • 此外,PsyDI 还会为您提供一张与您的气质相匹配的生成图,您可以通过生成图对自身性格有视觉上的理解。

以上是使用 PsyDI 的基本方法,现在就开始与 PsyDI 的旅程吧!

🔑 PsyDI 最小流程

我们提供了一个 PsyDI 流程的最小版本作为演示,让每个人都可以轻松地部署 PsyDI。最小流程允许用户输入几条初始文本,基于初始文本生成用户的 MBTI 分数表。然后,PsyDI 最小流程会选择那些最有可能包含深层意义的文本,以此为基础与用户开展多轮对话。对话结束后,PsyDI 会根据对话结果更新用户的 MBTI 分数表。而这一流程正是介绍中所提到的 PsyDI 的核心组件。

在最小流程中,我们以 DeepSeek 为例,作为提供多轮对话的语言模型。用户也可以替换为任意其他具有多轮对话能力的语言模型。

安装

pip3 install -r requirements.txt

使用方法

基于我们公开的 Score Model 运行最小流程:

REWARD_MODEL_PATH=<rm-path> API_KEY=<your-api-key> API_URL=https://api.deepseek.com MODEL_NAME=deepseek-chat python3 psydi_mini_agent.py

基于用于调试的 Score Model 运行最小流程:

DEBUG=true API_KEY=<your-api-key> API_URL=https://api.deepseek.com MODEL_NAME=deepseek-chat python3 psydi_mini_agent.py

📚 介绍

PsyDI 的基本原理是在与用户交流的过程中逐步挖掘用户底层的认知过程。通过发掘这些认知过程,PsyDI 能够识别用户习惯的认知模式,最终确定其迈尔斯-布里格斯类型指标(MBTI)。

评估框架

PsyDI 借鉴了传统的心理测试量表,以 MBTI 分数表为核心判断方式。该表的每一行对应了一个 MBTI,其值表示当前用户被认为是该 MBTI 的概率,范围从 0 到 100。

测试过程

PsyDI 首先将用户输入的多模态信息转换为文本形式,然后通过微调后的分数模型评估这些文本表达,计算每条文本被判定为某个 MBTI 的概率。在后续测试过程中,PsyDI 将不断迭代以下三个步骤,直到确定用户的 MBTI:

  1. 动态选择: PsyDI 根据当前用户的 MBTI 分数表中概率最高的两个 MBTI,选择在这两个 MBTI 下得分都较高的动态。这一步骤的目的是定位当前认知方式最模糊的行为信息,并提出进一步的问题来确认其认知方式。

  2. 对话交互: PsyDI 从上一步骤中选出的动态出发,与用户进行多轮对话。多轮对话中有三种交互格式:多选题、迫选题和自由问答。最终多轮对话的问答过程将会整合为一句对用户的描述。

  3. 表格更新: PsyDI 根据这一新的描述更新用户的 MBTI 分数表。

迭代更新

PsyDI 通过迭代执行上述三个步骤,在每一次交互中不断加深对用户认知模式的理解,直到确认用户的 MBTI。

📊评估

Score Model 评估

我们构建了 pair-wise 的 MBTI 数据集,并且比较了多个闭源模型和开源模型与 PsyDI 在 MBTI 数据集上的效果。PsyDI 在各个 MBTI 数据集上都展现了超越现有语言模型的效果,结果展示如下:

Pipeline 评估

我们评估了 PsyDI Pipeline 与现有 MBTI 测试在评测 MBTI bot 时的准确度,结果展现在下图左侧。同时,我们也评估了 PsyDI Pipeline 对于初始动态的依赖程度,发现 PsyDI 在随机的初始动态下都能够在后续对话中确定用户的真实 MBTI,结果展现在下图右侧:

路线图

  • PsyDI 的在线部署
  • 发布所有前端代码和部署脚本
  • MBTI 评估画廊
  • 其他语言支持(英语)
  • 发布后端代码示例和提示
  • 发布生成的数据集
  • 发布经过训练的奖励模型
  • 技术报告 arxiv 链接
  • 更多多模态和交互式问题和示例

本地运行

首先,您需要用 .env.example中定义的 环境变量来运行 PsyDI.

注意:您不应提交您的 .env 文件,这将会其他人能够获得您的 OpenAI 和身份验证帐户的访问,将导致隐私安全问题。

然后,您需要在您的计算机上安装 node.js(建议使用 v18.17.0)和 npm。

设置好所有环境后,您可以运行以下命令来启动前端:

npm install -g pnpm
pnpm install
pnpm dev --port 3001

此时您的应用模板应该运行在localhost:3001上。

致谢

  • 感谢 JAAAAACKKKKKY 对于本项目 UI/UX 设计和美术素材的贡献。
  • vercel/ai-chatbot

反馈与贡献

您可以通过如下方式提供反馈:

感谢所有对 PsyDI 后续改进的反馈和贡献,包括算法层面和系统设计。这些反馈让 PsyDI 变得更好!

引用

@article{li2024psydi,
    title={PsyDI: Towards a Personalized and Progressively In-depth Chatbot for Psychological Measurements},
    author={Li, Xueyan and Chen, Xinyan and Niu, Yazhe and Hu, Shuai and Liu, Yu},
    journal={arXiv preprint arXiv:2408.03337},
    year={2024}
}

许可证

本仓库中的所有代码都符合 Apache 2.0 许可。