{"id":13645602,"url":"https://github.com/hncboy/ai-beehive","last_synced_at":"2025-05-15T09:02:26.791Z","repository":{"id":148378241,"uuid":"617529988","full_name":"hncboy/ai-beehive","owner":"hncboy","description":"AI 蜂巢，基于 Java 使用 Spring Boot 3 和 JDK 17，支持的功能有 ChatGPT、OpenAi Image、Midjourney、NewBing、文心一言等等","archived":false,"fork":false,"pushed_at":"2023-08-26T08:32:35.000Z","size":3903,"stargazers_count":2191,"open_issues_count":14,"forks_count":639,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-05-06T21:03:50.750Z","etag":null,"topics":["chatgpt","chatgpt-java","java","midjourney"],"latest_commit_sha":null,"homepage":"https://front.aibeehive.icu/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hncboy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-03-22T15:23:13.000Z","updated_at":"2025-05-04T16:09:21.000Z","dependencies_parsed_at":"2023-09-18T09:43:17.986Z","dependency_job_id":null,"html_url":"https://github.com/hncboy/ai-beehive","commit_stats":null,"previous_names":["hncboy/ai-beehive","hncboy/chatgpt-web-java"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hncboy%2Fai-beehive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hncboy%2Fai-beehive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hncboy%2Fai-beehive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hncboy%2Fai-beehive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hncboy","download_url":"https://codeload.github.com/hncboy/ai-beehive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253891740,"owners_count":21979850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","chatgpt-java","java","midjourney"],"created_at":"2024-08-02T01:02:38.249Z","updated_at":"2025-05-15T09:02:26.686Z","avatar_url":"https://github.com/hncboy.png","language":"Java","funding_links":[],"categories":["Openai"],"sub_categories":[],"readme":"# ai-beehive\n\n### 服务器购买：[亚洲云](https://www.asiayun.com/aff/PJKGJTCD) 7.8 折优惠码：aibeehive\n\n# 介绍\n\n- chatgpt-web-java 2.0 版本，更名为 ai-beehive（爱蜂巢、AI 蜂巢），体验站：https://front.aibeehive.icu\n- chatgpt-web-java 1.0 [最终版分支地址](https://github.com/hncboy/chatgpt-web-java/tree/v1.1.0)，体验地址：https://front3.stargpt.top/#/\n- 前端开发：https://github.com/mjjh1717\n- 前端项目地址：https://github.com/mjjh1717/chatgpt-shuowen\n- 描述：ai-beehive 项目的名字取自蜂巢，这源于我们构建房间的方式，即通过图纸塑造出独特的模块化房间，每个房间都是一个具有个性的聊天室，类似于蜂巢中的单独蜂窝。六边形的蜂窝设计启示我们，系统具有无限的扩展能力。在我们的 ai-beehive项目中，我们提供了一种方式，即通过添加新的图纸来扩展和丰富房间类型.\n\n# 框架\n\n- Spring Boot 3.x\n- JDK 17\n- MySQL 8.x\n- SpringDoc 接口文档\n- MyBatis Plus\n- MapStruct\n- Lombok\n- Redis\n- WebSocket\n- thumbnailator 图片处理\n- [lock4j 分布式锁](https://gitee.com/baomidou/lock4j)\n- [Forest 网络框架](https://forest.dtflyx.com/)\n- [Hutool](https://hutool.cn/) \n- [SaToken](https://sa-token.cc/) 权限校验\n- [Grt1228 ChatGPT java sdk](https://github.com/Grt1228/chatgpt-java)\n- ......\n\n# 部署运行\n\n- 数据库在 beehive-bootstrap/src/main/resources/db/schema-mysql.sql\n- 数据库中存在默认的账号密码是 hellobee@aibeehive.icu——123456\n- 部署运行方式待完善 ing......，Java 开发者运行应该不成问题\n- 先安装 MySQL 和 Redis\n\n### IDEA 运行\n\n- 待更新......\n\n# 功能介绍\n\n## 登录注册\n\n### 1.邮箱登录注册\n\n使用 satoken 实现 token 存储，token 目前存在 redis\n\n![1](docs/pics/register_login.png)\n\n### 2.权限校验\n\n- 增加登录和注册邮箱后缀校验，可以选择允许哪种邮箱后缀的邮箱登录\n\n  ![](docs/pics/login_with_not_permit_email_suffix.png)\n\n- 增加是否开启注册，未开启情况下不允许注册\n\n  ![](docs/pics/system_not_permit_register.png)\n\n- 增加注册审核，开启后，用户注册完状态为待审核，需管理员将用户的状态改为通过才可登录\n\n- 增加用户登录状态，包含禁止登录、待审核以及正常。禁止登录状态的用户无法登录，可以通过移除 Redis 用户 Token 强制退出。\n\n### 3.相关参数\n\n通过 bh_sys_param 表的 **email-registerLoginConfig** param key 实现控制\n\n```\n{\n\t\"registerVerificationRedirectUrl\": \"http://localhost:1002/#/emailValidation?type=email\u0026verifyCode=\",\n\t\"registerVerifyCodeExpireMinutes\": \"验证码过期时间（分钟）\",\n\t\"registerTemplateSubject\": \"邮件标题\",\n\t\"registerAllowSuffix\": \"@qq.com,*\",  // 允许注册的邮箱后缀，多个用逗号分隔\n\t\"registerEnabled\": true,         // 是否开启注册\n\t\"loginAllowSuffix\": \"@qq.com,*\", // 允许登录的邮箱后缀，多个用逗号分隔\n\t\"registerCheckEnabled\": true // 是否开启注册审核\n}\n```\n\n\n\n## 图纸管理\n\n- 目前已经实现的图纸有 OpenAi GPT 3.5、OpenAi GPT 4、官网 ChatGPT 3.5、、官网 ChatGPT 4、OpenAi Image 绘图、Midjourney、NewBing，可能存在一些问题待修复。图纸和配置项管理目前都得手动改数据库。\n\n![](docs/pics/cell_list_01.png)\n\n### 图纸状态\n\n- 包含了图纸的状态，不同图纸对应前端的展示不一样，只有 published 状态的图纸才可以被使用，如果图纸状态不为 published，那么就算是已经创建好的房间也无法发送内容。用于图纸出现问题时可以即使停止使用。\n\n### 图纸权限\n\n- 基于 published 状态的图纸可以控制权限，分配哪些用户可以使用图纸或者全体用户都可以使用，通过 bh_cell_permission 表控制\n- cell_code 表示图纸编码，type 表示权限类型，1 表示浏览权限 2 表示使用权限，权限 2 包含 1。浏览权限表示能看到图纸，使用权限表示可以使用状态为 published 的图纸。user_id 为 0 表示任意用于都拥有该权限。\n\n| 名          | 类型     | Not Null | 注释      |\n| ----------- | -------- | -------- | --------- |\n| id          | bigint   | true     | 主键      |\n| user_id     | int      | true     | 用户 id   |\n| cell_code   | varchar  | true     | cell code |\n| type        | tinyint  | true     | 类型      |\n| create_time | datetime | true     | 创建时间  |\n| update_time | datetime | true     | 更新时间  |\n\n## 图纸配置项管理\n\n- 每种图纸都拥有其配置项，配置项是在数据库维护，基本图纸的所有参数都可以存在配置项表里，初始化 SQL 中包含了已使用到的一些图纸配置项。\n- 配置项表的字段有点多，每个配置项也可以配置权限，不过因为配置项有点多，所以用到情况应该很少。\n- 配置项样式后续更新，房间编辑配置项功能后续更新。\n- 配置项支持配置默认值、是否必填、用户是否可以使用默认值、用户是否可见、用户是否可见默认值、用户是否可修改、用户创建房间后是否可修改等等。\n- 后续更新......\n\n## 房间类型\n\n### Midjourney\n\n- 包含文生图、U 放大、V 变化、图生文\n- 参考 https://github.com/novicezk/midjourney-proxy 项目实现\n\n#### Imagine\n\n文生图功能，默认从输入框发送的消息就是 imagine 指令，需要输入**英文提示词**，过程中会显示进度条。如果输入非法内容，不会有提示，此时消息相当于异常，通过定时任务重置任务状态。默认展示的图片是缩放的，减少流量传输，有需要时点击查看原图。\n\n![](docs/pics/cell_midjourney_imagine_01.png)\n\n![](docs/pics/cell_midjourney_imagine_02.png)\n\n#### Upscale\n\n放大其中一张图片，Imagine 生成的图片 Upscale 只能点一次，不能重复点击\n\n![](docs/pics/cell_midjourney_upscale_01.png)\n\n#### Variation\n\n基于一张图片生成新的四张图片\n\n![](docs/pics/cell_midjourney_variation_01.png)\n\n#### Describe\n\n图生文\n\n点击图标上传图片\n\n![](docs/pics/cell_midjourney_describe_01.png)\n\n会生成四句提示语，1234 四个选项分别代表这四句提示语，点击即可自动将对应的提示语发送 Imagine 消息\n\n![](docs/pics/cell_midjourney_describe_02.png)\n\n### OpenAi Image\n\n- 图生文的功能，直接输入提示语\n\n![](docs/pics/cell_openai_image_01.png)\n\n### OpenAi GPT 3.5 \u0026 4\n\n- 将调用 OpenAi 接口的所有参数都封装成了配置项，可以根据情况是否让用户可配置参数\n\n  ![](docs/pics/cell_openai_gpt_01.png)\n\n### 官网 ChatGPT\n\n- 与原先相比增加了返回值错误的类型判断\n\n### NewBing\n\n- 本地可行，线上不可行，查找问题修复中\n\n# 计划功能\n\n- 管理端图纸管理、图纸配置项管理\n- 其他图纸，文心一眼、通义千问、chatglm 等等\n- 绘图的图片画廊\n- 配置项样式处理，openai 的提示词商店\n- 等等\n\n# 实现方案\n\n- 增加了 OpenAi ApiKey 轮询\n- 待更新......,\n\n# 联系方式\n\n加群添加微信备注 Github\n\n![](docs/pics/wechat.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhncboy%2Fai-beehive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhncboy%2Fai-beehive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhncboy%2Fai-beehive/lists"}