Code Monkey home page Code Monkey logo

gptlink-deploy's Introduction

GPTLink

只需简单几步,即可快速搭建可用的 AI对话 站点。

体验地址 · 演示图片 · 反馈 · 微信加群

商务合作 · 关注公众号 · 打赏开发者

功能概览

  • 支持 Docker 部署
  • 开箱即用的控制台
  • 完美适配移动端
  • 自定义付费套餐
  • 一键导出对话
  • 任务拉新获客

开始使用

  1. 项目基于 PHP (Hyperf) + Vue 开发,推荐使用 Docker 进行部署;
  2. 准备好一个 API Key,推荐使用 GPTLINK Key;
    • GPTLINK Key ,注册完成之后进入个人中心申请开发者后获取 API Key,过程非常简单,无需审核,接口无需代理;
    • OpenAi 官方 Key;
  3. 微信相关应用(非必须)

项目仓库

项目配置

项目提供有限的权限控制功能,项目配置文件位于 gptserver/.env,如诺不存在此文件,将 gptserver/.env.example 更名为 .env 作为配置项进行使用,详细的配置说明 点此查看

部署

项目支持多种部署方式,部署文档参考:点此查看

  • PHP 环境部署
  • Docker 部署
  • Docker Compose 部署
  • ...

访问

项目访问

  • 对话端 访问 http://域名或IP 进入对话页面
  • 管理端 访问 http://域名或IP/admin 进入管理页

管理员账号密码为配置项设置的 ADMIN_USERNAMEADMIN_USERNAME,如不传入,默认账号密码为 admin admin888

API 文档地址:

  • 用户端 API 文档访问 /api/docs/default
  • 管理端 API 文档访问 /api/docs/admin

版本计划

  • 前端开源
  • 管理端开源
  • 账号密码登录
  • 线下收款配置
  • 兑换码
  • AI 生图
  • 分销
  • 统计视图

参与贡献

我们深知这不是一个完美的产品,但是它只是一个开始,欢迎加入我们一起完善!:heart: 请参阅 贡献指南

特别鸣谢

疑难解答

常见问题汇总:点击查看

微信交流群

开源协议

Apache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html

gptlink-deploy's People

Contributors

0daynick avatar shunyue1320 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gptlink-deploy's Issues

部署完后台访问提示:服务器错误

部分配置:################# 基础配置 ###################

All Networks driver

NETWORKS_DRIVER=bridge

All volumes driver

VOLUMES_DRIVER=local

TIMEZONE

TIMEZONE=UTC

数据储存目录

DATA_PATH=./data

外网访问端口

GPTLINK_PORT=811
GPTLINK_SSL_PORT=444

使用的gptlink的镜像版本,如需使用指定版本,可自行指定

GPTLINK_VERSION=latest

部分日志:
[2023-07-26 23:48:56] default.INFO: exception {"req":[],"url":"GET http://127.0.0.1:9503/config/basic-info?","message":"Connection refused[268] in /app/gptserver/vendor/hyperf/redis/src/RedisConnection.php","trace":"#0 /app/gptserver/vendor/hyperf/redis/src/RedisConnection.php(268): Redis->connect()
#1 /app/gptserver/vendor/hyperf/redis/src/RedisConnection.php(117): Hyperf\Redis\RedisConnection->createRedis()
#2 /app/gptserver/vendor/hyperf/redis/src/RedisConnection.php(71): Hyperf\Redis\RedisConnection->reconnect()
#3 /app/gptserver/vendor/hyperf/redis/src/Pool/RedisPool.php(58): Hyperf\Redis\RedisConnection->__construct()
#4 /app/gptserver/vendor/hyperf/pool/src/Pool.php(167): Hyperf\Redis\Pool\RedisPool->createConnection()
#5 /app/gptserver/vendor/hyperf/pool/src/Pool.php(60): Hyperf\Pool\Pool->getConnection()
#6 /app/gptserver/vendor/hyperf/redis/src/Redis.php(98): Hyperf\Pool\Pool->get()
#7 /app/gptserver/vendor/hyperf/redis/src/Redis.php(44): Hyperf\Redis\Redis->getConnection()
#8 /app/gptserver/vendor/hyperf/cache/src/Driver/RedisDriver.php(33): Hyperf\Redis\Redis->__call()
#9 /app/gptserver/vendor/hyperf/cache/src/Cache.php(27): Hyperf\Cache\Driver\RedisDriver->get()
#10 /app/gptserver/vendor/hyperf/cache/src/Cache.php(32): Hyperf\Cache\Cache->__call()
#11 /app/gptserver/app/Model/Repository/ConfigTrait.php(63): Hyperf\Cache\Cache->get()
#12 /app/gptserver/runtime/container/proxy/App_Http_Control_Web_ConfigController.proxy.php(36): App\Model\Config::toDto()
#13 /app/gptserver/vendor/hyperf/http-server/src/CoreMiddleware.php(161): App\Http\Control\Web\ConfigController->getBasicInfo()
#14 /app/gptserver/vendor/hyperf/http-server/src/CoreMiddleware.php(113): Hyperf\HttpServer\CoreMiddleware->handleFound()
#15 /app/gptserver/vendor/hyperf/dispatcher/src/AbstractRequestHandler.php(64): Hyperf\HttpServer\CoreMiddleware->process()
#16 /app/gptserver/vendor/hyperf/dispatcher/src/HttpRequestHandler.php(26): Hyperf\Dispatcher\AbstractRequestHandler->handleRequest()
#17 /app/gptserver/vendor/hyperf/validation/src/Middleware/ValidationMiddleware.php(83): Hyperf\Dispatcher\HttpRequestHandler->handle()
#18 /app/gptserver/vendor/hyperf/dispatcher/src/AbstractRequestHandler.php(64): Hyperf\Validation\Middleware\ValidationMiddleware->process()
#19 /app/gptserver/vendor/hyperf/dispatcher/src/HttpRequestHandler.php(26): Hyperf\Dispatcher\AbstractRequestHandler->handleRequest()
#20 /app/gptserver/vendor/cblink/hyperf-helper/src/Middleware/CorsMiddleware.php(27): Hyperf\Dispatcher\HttpRequestHandler->handle()
#21 /app/gptserver/vendor/hyperf/dispatcher/src/AbstractRequestHandler.php(64): Cblink\HyperfExt\Middleware\CorsMiddleware->process()
#22 /app/gptserver/vendor/hyperf/dispatcher/src/HttpRequestHandler.php(26): Hyperf\Dispatcher\AbstractRequestHandler->handleRequest()
#23 /app/gptserver/vendor/hyperf/dispatcher/src/HttpDispatcher.php(40): Hyperf\Dispatcher\HttpRequestHandler->handle()
#24 /app/gptserver/vendor/hyperf/http-server/src/Server.php(117): Hyperf\Dispatcher\HttpDispatcher->dispatch()
#25 {main}"} []

关注公众号的任务是否可以打开

我们是否可以考虑打开关注公众号的任务呢?目前,我们面临的挑战是,网页端用户离开后很难召回,因为缺乏一个与用户建立持续联系的链接。很多用户在体验了我们的服务后,难以找到再次访问的入口,这增加了拓展用户的成本。为了实现更高的用户活跃度和价值输出,我们需要持续地提醒用户使用我们的服务。这有这样我们才能不断努力提高用户的参与度和价值产出。

用户首次进入是否可以增加提醒信息

目前新用户通过邀请过来后,首页只有“开始提问吧~”这个提示语,这对于首次使用产品的用户还是比较无从下手的,是否可以自定义提示语,或者一个弹窗信息?期待你们的产品升级,谢谢

怎么配置反代

你那个gptlink docker 里面还加了nginx吗,直接暴露80,443。请问怎么配合Nginx Proxy Manager 使用。
我直接暴露端口可以使用,但是把端口隐藏通过npm网络访问就不得行,80,443和9503都不行。就很奇怪

version: '3.8'

networks:
  backend:
  npm:
    external: true

services:

  ### GPTLINK ################################################
  gptlink:
    image: overnick/gptlink:latest
    container_name: gptlink
    volumes:
      - ${HOME}/volumes/gptlink/logs/server:/app/gptserver/runtime/logs
      - ${HOME}/volumes/gptlink/logs/nginx:/var/log/nginx
    environment:
      - APP_NAME=${GPTLINK_APP_NAME}
      - APP_URL=${GPTLINK_APP_URL}
      - JWT_SECRET=${GPTLINK_JWT_SECRET}
      - ADMIN_USERNAME=${GPTLINK_ADMIN_USERNAME}
      - ADMIN_PASSWORD=${GPTLINK_ADMIN_PASSWORD}
      - DB_HOST=${GPTLINK_DB_HOST:-mysql}
      - DB_PORT=${GPTLINK_DB_PORT:-3306}
      - DB_DATABASE=${GPTLINK_DB_DATABASE}
      - DB_USERNAME=${GPTLINK_DB_USERNAME}
      - DB_PASSWORD=${GPTLINK_DB_PASSWORD}
      - REDIS_HOST=${GPTLINK_REDIS_HOST:-redis}
      - REDIS_AUTH=${GPTLINK_REDIS_AUTH:-(null)}
      - REDIS_PORT=${GPTLINK_REDIS_PORT:-6379}
      - OPENAI_HOST=${OPENAI_HOST:-}
      - OPENAI_PORT=${OPENAI_PORT:-}
      - OPENAI_PROXY_HOST=${OPENAI_PROXY_HOST:-}
      - OPENAI_PROXY_PORT=${OPENAI_PROXY_PORT:-}
      - OPENAI_MODEL=${OPENAI_MODEL:-}
      - OPENAI_MAX_TOKENS=${OPENAI_MAX_TOKENS:-4000}
      - OPENAI_MAX_RESPONSE_TOKENS=${OPENAI_MAX_RESPONSE_TOKENS:-1000}
    networks:
      - backend
    expose:
      - 9503
    labels:
      - docker-volume-backup.stop-during-backup=true

  ### Redis ################################################
  redis:
    image: redis:alpine
    volumes:
      - ${HOME}/volumes/gptlink/redis:/data
    networks:
      - backend
    labels:
      - docker-volume-backup.stop-during-backup=true

  ### MySQL ################################################
  mysql:
    image: mariadb:latest
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE:-gptlink}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TZ=${TIMEZONE}
    volumes:
      - ${HOME}/volumes/gptlink/mysql:/var/lib/mysql
    networks:
      - backend
    labels:
      - docker-volume-backup.stop-during-backup=true

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.