AI prompts
base on 10分钟搭建可免费商用的AI对话环境,搭建简单,包含用户,订单,任务,付费等功能 <div align="center">
<h1 align="center">GPTLink</h1>
<p> 只需简单几步,即可快速搭建可用的 AI对话 站点。</p>
[体验地址](./DEMO.md) · [演示图片](./docs/show/README.md) · [反馈](https://github.com/gptlink/gptlink/issues) · [微信加群](./docs/images/qrcode.png)
[商务合作](./docs/images/qrcode.png) · [关注公众号](./docs/images/official.jpg) · [打赏开发者](./docs/images/payment.jpeg)
<img src="https://github.com/gptlink/gptlink/assets/1472352/98a5012b-3111-4c50-bd36-c8eabf17f6e7" />
</div>
## 功能概览
- 支持 Docker 部署
- 开箱即用的控制台
- 完美适配移动端
- 自定义付费套餐
- 一键导出对话
- 任务拉新获客
## 开始使用
1. 项目基于 PHP (Hyperf) + Vue 开发,推荐使用 Docker 进行部署;
2. 准备好一个 API Key,推荐使用 [GPTLINK](http://gpt-link.cn) Key;
- [GPTLINK](http://gpt-link.cn) Key ,注册完成之后进入个人中心申请开发者后获取 API Key,过程非常简单,无需审核,接口无需代理;
- OpenAi 官方 Key;
3. 微信相关应用(非必须)
- [微信网站应用](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html)
- [微信公众号](https://mp.weixin.qq.com/)
- [微信支付](https://pay.weixin.qq.com/)
## 项目仓库
- 前端源码: https://github.com/gptlink/gptlink-web
- 部署脚本: https://github.com/gptlink/gptlink-deploy
- 管理端源码: 新版开发中,敬请期待
## 项目配置
项目提供有限的权限控制功能,项目配置文件位于 `gptserver/.env`,如诺不存在此文件,将 `gptserver/.env.example` 更名为 `.env` 作为配置项进行使用,详细的配置说明 [点此查看](./docs/ENV.md)
## 部署
项目支持多种部署方式,部署文档参考:[点此查看](https://github.com/gptlink/gptlink-deploy)
- PHP 环境部署
- Docker 部署
- Docker Compose 部署
- ...
### 访问
**项目访问**
- 对话端 访问 `http://域名或IP` 进入对话页面
- 管理端 访问 `http://域名或IP/admin` 进入管理页
管理员账号密码为配置项设置的 `ADMIN_USERNAME` 与 `ADMIN_USERNAME`,如不传入,默认账号密码为 `admin` `admin888`
**API 文档地址:**
- 用户端 API 文档访问 `/api/docs/default`
- 管理端 API 文档访问 `/api/docs/admin`
## 版本计划
- [x] [前端开源](https://github.com/gptlink/gptlink-web)
- [ ] 管理端开源
- [x] 账号密码登录
- [x] 线下收款配置
- [x] 兑换码
- [ ] AI 生图
- [ ] 分销
- [ ] 统计视图
## 参与贡献
我们深知这不是一个完美的产品,但是它只是一个开始,欢迎加入我们一起完善!:heart: 请参阅 [贡献指南](./CONTRIBUTING.md)
<a href="https://github.com/gptlink/gptlink/graphs/contributors">
<img src="https://contrib.rocks/image?repo=gptlink/gptlink" />
</a>
## 特别鸣谢
- [@overtrue](https://github.com/overtrue)
- [@Lainy0307](https://github.com/Lainy0307)
## 疑难解答
常见问题汇总:[点击查看](./docs/FAQ.md)
## 微信交流群
<img src="https://raw.githubusercontent.com/gptlink/gptlink/master/docs/images/qrcode.png" width="300" />
## 开源协议
Apache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html
", Assign "at most 3 tags" to the expected json: {"id":"6660","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"