返回市场
易聊数据管理

易聊数据管理

作者:cote13 星标更新:2025-10-13

项目介绍

EasyChatDM - 演示创建一个简单的MCP服务器工具

用于与生成式AI一起玩D&D的游戏示例MCP服务器工具。这些工具是占卜器,用于确定随机的是/否问题,同时也用于描述、事件、NPC等。它们是“随机表”,当你希望在游戏中引入一些不确定性、转折和随机性时使用。此项目用于教育目的,因此很少关注良好的代码设计。

这些工具是MCP服务器工具,可以与Claude桌面和其他MCP客户端配合使用。它们是用Spring AI MCP编写的。由于这个项目是教育性的,所以没有考虑良好的设计。相反,代码编写是为了让你能够一步一步地轻松跟随如何创建工具。

运行它

你应该将src/main/easychatdmdir/prompts/目录的内容复制到~/.easychatdm。这些文件用于提示、占卜器等。

数据库配置

现在DM日记会持久化到数据库而不是纯JSON文件。本地运行默认使用SQLite,数据库文件存储在~/.easychatdm/easychatdm.db。通过系统属性或环境变量来控制SQLite和PostgreSQL之间的切换。

可用属性

属性默认值描述
easychatdm.dir${user.home}/.easychatdm提示/占卜器的基本目录,对于SQLite,也是数据库文件的位置。
easychatdm.db.typesqlite选择sqlite(本地文件)或postgres(远程数据库)。
easychatdm.db.sqlite.path(从easychatdm.dir派生)覆盖SQLite数据库的完整路径。如果设置为目录,则会在下面追加文件名。
easychatdm.db.sqlite.file-nameeasychatdm.db在解析的目录下创建SQLite数据库时使用的名称。
easychatdm.db.sqlite.pool-size1使用SQLite时HikariCP池大小(通常保持为1)。
easychatdm.db.postgres.url(当db.type=postgres时需要)PostgreSQL实例的JDBC URL。
easychatdm.db.postgres.username(当db.type=postgres时需要)数据库用户名。
easychatdm.db.postgres.password(空字符串)数据库密码。
easychatdm.db.postgres.pool-size4使用PostgreSQL时HikariCP池大小。
easychatdm.journal.export-filestrue(对于SQLite),false(对于Postgres)启用时将日记内容镜像到JSON/Markdown文件中。

对于Cloud Foundry(或其他远程部署),使用JAVA_OPTS设置系统属性,例如:

JAVA_OPTS: >-
  -Deasychatdm.db.type=postgres
  -Deasychatdm.db.postgres.url=${JDBC_DATABASE_URL}
  -Deasychatdm.db.postgres.username=${JDBC_DATABASE_USERNAME}
  -Deasychatdm.db.postgres.password=${JDBC_DATABASE_PASSWORD}

致谢

更多

查看ChatDM项目以获取一个更复杂、功能更丰富且设计更好的EasyChatDM版本。

这里有一些视频概述了该项目:

  1. 视频系列的第一部分
    我构建了一个非常简单的MCP工具。
  2. 视频系列的第二部分中,我构建了一个基于文件的占卜器,并介绍了如何使用Claude生成的日志并开始自己的日志记录。
  3. 第三部分,我构建了一个MCP资源,作为DM日记来持久化游戏信息,以便在游戏会话之间保存。
  4. 最后,在我制作了一个MCP提示,这真的令人兴奋。
    这是第一次看到一些感觉“有代理”的东西。

请关注播放列表,以获取更多即将发布的视频。

参考资料

版本

  • 0.0.4 - 默认情况下DM日记存储在SQLite中,可以通过系统属性切换到PostgreSQL。
  • 0.0.3 - 相对稳定,在转换为使用服务进行DM日记存储之前。此版本仍然依赖于文件访问。