Value-added Services API Configuration
I have developed some value-added services for GeekAI, which you can purchase as needed. The details are as follows:
1. CAPTCHA Service
GeekAI provides some value-added services internally, and these services are paid. You need to configure a CAPTCHA service to prevent the SMS or email sending API from being abused by malicious traffic. Otherwise, the frontend registration service cannot be opened, and users can only be added through the admin backend. Clicking to send a CAPTCHA will result in the following error.
2. Weibo Hot Search Service
This service allows the AI to access Weibo hot search functionality during conversations, effectively giving the AI some internet access capabilities.
3. Daily Morning News Service
This function is similar to the Weibo hot search service, but it fetches different internet content.
4. Unified Login Service
The unified login is a third-party login service plugin provided by GeekAI. Once enabled, third-party login components will appear on the login page. Currently, only WeChat login is supported, with plans to add QQ login, Alipay login, etc., in the future.
5. Service Pricing Table
All the above services, except for the unified login service, cost 9.9 RMB per month individually. The unified login service costs 15 RMB per month. You can purchase a single service, such as the CAPTCHA service, or bundle multiple services together.
The longer the purchase duration, the more favorable the price (the following prices are for individual services):
- 1 month: 9.9 RMB
- 3 months: 27 RMB
- 6 months: 50 RMB
- 1 year: 90 RMB
These services have no call limits. The configuration is very simple: ask the group owner to generate an AppId and a Token, then modify the configuration file conf/config.toml
. Locate the ApiConfig
section and update the configuration:
[ApiConfig]
ApiURL = "https://sapi.geekai.me"
AppId = "" # Replace with your AppId
Token = "" # Replace with your Token
After configuring, restart the application to take effect:
docker-compose down
docker-compose up -d
Redemption Code Configuration
Starting from version v4.1.2, GeekAI supports redemption codes. You can add redemption codes in the "Redemption Codes" page of the admin backend:
Batch addition is supported:
After purchasing a redemption code, users can redeem it on the "Membership Center" page in the frontend.
After successful redemption, the computing power logs will show an increase in computing power.
HTTPS Access Configuration
After successfully deploying GeekAI, enabling HTTPS access is very simple. Just follow these three steps:
Assuming your GeekAI deployment directory is /opt/geekai
:
Copy your certificates to the
ssl
directory under the project deployment path, i.e.,/opt/geekai/ssl
. The directory structure should look like this:ssl/ ├── ca.key └── ca.pem
Configure the nginx configuration file to set the domain name and SSL certificate path. Open the
/opt/geekai/conf/nginx/conf.d/geekai.conf
file, uncomment the SSL section, and configure your domain name and certificate path as shown below.Note: Remember to open port 443 on your server.
Modify the Docker container ports. Edit the
docker-compose.yaml
file. The main changes are to map port 443 and mount the certificate files to the container.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' # Map port 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 # Do not change this directory; it must match the NGINX certificate configuration path
Finally, remember to restart the service after making changes.
docker-compose down docker-compose up -d
Function Plugin Configuration
GeekAI allows users to add their own function plugins and implementations in the admin backend. This section explains how to add a function and implement a complete function call.
Adding a Function
In the admin backend, navigate to Function Management -> Add Function.
Parameter Explanation
Here’s a detailed explanation of how to fill in the parameters. The function name and description are self-explanatory.
- Function Label: This is the name displayed on the frontend when the function is called. For example:
Function Parameters: These represent the parameters required for the function call. GPT will automatically extract the required parameters from the user's input prompt. For example, if you define a
get_weather
function with two parameters, "time" and "location," and the user asks, "What’s the weather like in Shenzhen today?", GPT will extract "today" and "Shenzhen" as the function call parameters.API URL: For ease of extension, we use remote functions here. API calls are made via JSONRPC, so you need to specify the remote API URL.
API Token: This is used for authorization during RPC calls. The Token is passed via the
Authorization
header to the API URL. Note that Token validation is handled by the API server, so the Token you enter here should be generated by your server. Since our Weibo hot search, daily morning news, and Dalle3 function services are built-in (i.e., implemented within the chat-plus-api service), they can be generated with one click. However, if your function is implemented in another system, you need to generate a Token from that system and enter it here. For example, if you write a PHP function to scrape web pages for GPT to access the internet, the API URL should point to the PHP system's API, and the Token should be generated by the PHP system.The official GPT function calling documentation is here: https://openai.com/blog/function-calling-and-other-api-updates
Note:
Our implementation differs from the official recommended approach. We skip the third step of submitting API-returned data to GPT for reorganization. By default, whatever the function returns is directly displayed in the frontend chat history. Therefore, your API function implementation should assemble the content before returning it, rather than returning structured data. You can return plain text, Markdown, or HTML code.
Common Error Handling
- Token Signature Error During Function Call
When calling the Weibo hot search or Dalle3 drawing functions, you might encounter an error like this:
error with parse auth token: token signature is invalid: signature is invalid
This happens because the function call Token in the imported database was generated locally, and the local key differs from your online key. You need to regenerate the function Token in the admin backend.
Simply go to the admin backend => "Edit Function" and regenerate the Token.
- Inconsistent Function Calls
Large language models have inherent randomness. Even if you ask the same question multiple times, the answers may vary. Therefore, sometimes a function call is triggered, and other times it isn’t—both scenarios are normal. Based on my tests, the gpt-3.5-turbo
, gpt-3.5-16k
, and gpt-4
models are more stable for function calls. The 1106 and 0125 series models are less stable for function calling.