# 增值服务 API 配置
本人为 GeekAI 开发了一些增值服务,你可以按需购买使用,具体如下:
# 1. 图形验证码服务
GeekAI 内部提供一些增值服务,这些增值服务是收费的。你需要配置行为验证码服务,来防止短信或者邮箱发送的 API 接口被恶意刷流量。 否则就没法开放前端注册服务,只能通过管理后台去添加用户,点击发送断线验证码的时候会出现下面的错误。
# 2. 微博热搜服务
在对话中可以提供微博热搜功能,相当于是给 AI 获得一些访问互联网的能力。
# 3. 今日早报服务
功能类似微博热搜,只是抓取的互联网内容不一样。
# 4. 聚合登录服务
聚合登录是 GeekAI 提供的一款第三方登录服务插件,开通之后,在登录页面就会出现第三方登录的服务组件。目前只实现了微信登录,后期还会增加 QQ 登录,支付宝登录等。
# 5. 服务价格表
上述所有的服务除了聚合登录之外,单买都是 9.9 元一个月,聚合登录服务是 15 元一个月。 你单独购买某个服务,比如验证码服务。也可以多项打包一起购买。
购买时长越长,价格越优惠(以下为单项服务的价格):
- 一个月 9.9 元
- 三个月 27 元
- 半年 50 元
- 一年 90 元
以上服务不限制调用次数。配置非常简单,找群主生成一个 AppId 和一个 Token,
然后修改配置文档 conf/config.toml
,找到 ApiConfig
配置段,更改配置:
[ApiConfig]
ApiURL = "https://sapi.geekai.me"
AppId = "" # 这里替换成你的 AppId
Token = "" # 这里替换成你的 Token
配置好之后重启应用生效:
docker-compose down
docker-compose up -d
# 兑换码配置
GeekAI 从 v4.1.2 版本之后开始支持卡密功能,卡密的添加在管理后台的“兑换码”页面添加:
支持批量添加:
用户购买了卡密之后,可以在前端“会员中心”页面进行核销。
核销成功之后,算力日志中会有算力增加的日志。
# HTTPS 访问配置
GeekAI 部署成功之后,如果你想启用 HTTPS 访问支持非常简单,只需下面三步:
假设你 GeekAI 部署的目录是 /opt/geekai
拷贝你的证书到项目部署路径下的 ssl 目录下。也就是
/opt/geekai/ssl
,目录的结构如下:ssl/ ├── ca.key └── ca.pem
设置 nginx 配置文档,设置域名和 SSL 证书地址。打开
/opt/geekai/conf/nginx/conf.d/geekai.conf
文件,打开 SSL 设置段的注释,按照如下图所示,设置好你的域名和证书地址。图片加载中...需要注意的是,你要记得在你的服务器上开放 443 端口。
修改 docker 容器的端口。修改 docker-compose.yaml 文件。主要修改两个地方,一个是开放映射 443 端口,另一个是挂载证书文件到容器。
geekai-web: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-plus-web:v4.1.0-amd64 container_name: geekai-web restart: always depends_on: - geekai-api ports: - '443:443' # 映射 443 端口 volumes: - ./logs/nginx:/var/log/nginx - ./conf/nginx/conf.d:/etc/nginx/conf.d - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf - ./conf/nginx/ssl:/etc/nginx/ssl # 这里这个目录不要改,跟上面 NGINX 配置证书的目录要一致
最后,改完记得重启服务。
docker-compose down docker-compose up -d
# 函数插件配置
GeekAI 支持用户在管理后台添加自己的函数插件和实现。本文主要介绍如何添加一个函数,以及实现一个完整的函数调用。
# 添加函数
在管理后台,选择 函数管理 -> 新增函数。
# 参数解释
下面我们具体解释下参数怎么填写。函数名称,函数描述就不用说了,意思很明显。
- 函数标签 是只当前函数被调用的时候,前端页面显示的名称,比如下面这个:
函数参数 代表你这个函数要调用的需要传入哪些参数,GPT 会自动从用户输入的提示词中提取参数你所需要的函数参数,比如你定义一个获取天气的函数
get_weather
,并且你定义了 2 个参数, “时间”和“地点”。那么当用户输入“今天深圳的天气怎样?”,GPT 会自动从提问当中提取“今天”和“深圳”这 2 个参数作为你函数的调用入参。API 地址:为了方便大家扩展,我们这里设置都是远程函数,API 具体调用的时候是通过 JSONRPC 的方式调用。因此你需要填写你 API 调用的远程地址。
API Token:这个是在 RPC 调用的时候授权用的。这个 Token 参数都是通过
Authorization
头信息传递到函数 API 地址的。需要注意的是 Token 的验证是在 API 服务端验证的,所以你这里填写的 Token 应该是你的服务端生层的。 因为我们的微博热搜,今日早报,以及 Dalle3 的函数服务是内置的,也就是说是就是 chat-plus-api 服务内部实现的,故而可以通过本系统一键生成。但如果你的函数是另一个系统实现,那么你就需要在那个系统生成一个 Token 填入此处。 举例,假设你用 PHP 写了一个抓取网页的函数,给 GPT 扩展上网的功能,那么此时 API 地址就要填写那个 PHP 系统的 API 地址,Token 也要通过那个 PHP 系统生成。GPT 函数调用的官方文档在这里:https://openai.com/blog/function-calling-and-other-api-updates
注意:
我们这个实现跟官方的推荐实现方式有区别,我们没有进行第三步把 API 返回的数据在提交给 GPT 调用重组, 默认函数返回什么我们就把返回内容直接显示在前端聊天记录中了,所以你的 API 函数实现端需要组装好内容再返回过来,而不是返回结构化的数据。你可以返回纯文本和 Markdown 以及 HTML 代码。
# 常见错误处理
一、调用函数出现 Token 签名错误
在调用微博热搜,dalle3 绘图函数的时候报类似下面的错误:
error with parse auth token: token signature is invalid: signature is invalid
这是因为导入数据库中的函数调用 token 是我本地生成的,本地的密钥跟你线上的密钥肯定不一样的,所以你需要在管理后台重新生成函数的 token。
你只需到管理后台 => "编辑函数",然后重新生成 Token 就好了。
二、有时候调用函数,有时候不调用
大语言模型推理有一定的随机性,即使你每次问一样的问题,每次得到的答案也不一定相同。所以可能这次触发了函数调用,下次就没有触发,都属于正常情况。目前我测试的结果看,gpt-3.5-turbo 和 gpt-3.5-16k,gpt-4 这几个模型调用函数稳定一些。1106 模型和 0125 系列模型 Function 功能都不太稳定。
← 短信邮件配置