愛招飛數控中心幫助手冊 愛招飛數控中心幫助手冊
  • FastERP-1 (opens new window)
  • Smart (opens new window)
  • PinToo (opens new window)
  • FastWeb (opens new window)
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS (opens new window)
  • MARS (opens new window)
  • TaskRunner (opens new window)
  • Flying (opens new window)
  • FastDesk (opens new window)
  • HiDesk (opens new window)
  • HiNAT (opens new window)
  • FastBPM (opens new window)
  • 數控基礎資料
  • 設備故障診斷
  • 設備最佳運轉效益
  • 企業智能助手SmeGPT
  • 燈號管理
  • 戰情室
  • 能源管理 (opens new window)
  • 人車定位
  • 戰情指揮系統
  • FastERP-1 (opens new window)
  • FastWeb (opens new window)
  • Smart (opens new window)
  • PinToo (opens new window)
  • Flying (opens new window)
  • TARS (opens new window)
  • 通用功能

    • Report (opens new window)
    • Script (opens new window)
    • Echarts (opens new window)
    • Chart (opens new window)
    • DB Install (opens new window)
  • FastERP-1 (opens new window)
  • Smart (opens new window)
  • PinToo (opens new window)
  • FastWeb (opens new window)
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS (opens new window)
  • MARS (opens new window)
  • TaskRunner (opens new window)
  • Flying (opens new window)
  • FastDesk (opens new window)
  • HiDesk (opens new window)
  • HiNAT (opens new window)
  • FastBPM (opens new window)
  • 數控基礎資料
  • 設備故障診斷
  • 設備最佳運轉效益
  • 企業智能助手SmeGPT
  • 燈號管理
  • 戰情室
  • 能源管理 (opens new window)
  • 人車定位
  • 戰情指揮系統
  • FastERP-1 (opens new window)
  • FastWeb (opens new window)
  • Smart (opens new window)
  • PinToo (opens new window)
  • Flying (opens new window)
  • TARS (opens new window)
  • 通用功能

    • Report (opens new window)
    • Script (opens new window)
    • Echarts (opens new window)
    • Chart (opens new window)
    • DB Install (opens new window)
  • 企業GPT幫助手冊
  • 學習手冊

    • 安裝配置
    • 快速上手
    • 界面介紹
    • 功能介紹
    • 整合運用
    • 即時通訊接入
      • 1. 微信公眾號
        • 1.1. 獲取開發者金鑰
        • 1.2. 設定IP白名單
        • 1.3. 本地部署服務需注意的事項
        • 1.4. 修改本機配置檔案
        • 1.5. 反向代理服務設定
        • 1.6. 儲存伺服器配置
        • 1.7. FastWeb管理
        • 1.8. 代理連線
        • 1.8.1. 修改配置檔案
        • 1.8.2. 代理服務端設定
      • 2. Line
        • 2.1. 取得 Line Token
        • 2.2. 新增Webhook URL
        • 2.3. 設定反向代理
目录

即時通訊接入

# 即時通訊接入

  企業GPT目前支援微信、Line等即時通訊的接入。

# 1. 微信公眾號

設定微信公眾號的大語言模型服務,需要先設定微信公眾號的開發資訊。開發的公眾號要求為經過微信認證的微信公眾號,認證型別為服務號,需使用到客服介面。

# 1.1. 獲取開發者金鑰

進入微信公眾號的後臺管理界面,點選功能表欄的設定與開發-基本配置。可以看到有公眾號的開發資訊,請點選 重置 以重置開發者密碼,並記錄好開發者ID (AppID) 與 開發者密碼(AppSecret),在後續專案中會使用到。

# 1.2. 設定IP白名單

獲取服務端本機的公網IP地址,新增至公眾號開發資訊的IP白名單中。

# 1.3. 本地部署服務需注意的事項

如果需要本地部署服務的,需要注意的事項如下:

  • 微信公眾號服務僅支援訪問帶有開放80埠的伺服器,所以本地部署的需要使用反向代理服務(Nginx)將本地的服務埠通過Nginx實現轉發。
  • 微信公眾號token獲取的指令僅支援白名單IP的訪問,所以本地服務在運行時,需使用代理服務將發送的IP地址轉為白名單中的伺服器IP地址。

# 1.4. 修改本機配置檔案

修改本機配置檔案 config.ini 中 [WeChat_Server] 的WECHAT_REMOTE_SERVER,修改爲預設的外網服務地址。

[WeChat_MP] 中先修改 APP_ID、APP_SECRET,同時在微信公眾號後臺修改伺服器配置(位於基本配置頁面中),修改伺服器地址為 WECHAT_REMOTE_SERVER中設定的URL,在伺服器配置中設定好令牌(Token)與訊息加解密金鑰(EncodingAESKey),設定訊息加解密方式為安全模式,同步修改本機配置檔案 [WeChat_MP] 專案中的 TOKEN、ENCODING_AES_KEY,與伺服器配置中的令牌與訊息加解密金鑰保持一致。先保持微信公眾號後臺的設定界面不動,首先使用 python wechat_service.py 運行服務。

# 1.5. 反向代理服務設定

本機的環境訪問外部網路時,使用的是帶有公網IP的網路,使用云伺服器的反向代理服務,實現微信公眾號的公網服務訪問功能。Nginx的反向代理設定如下:

		location /robot {
			# First attempt to serve request as file, then
			# as directory, then fall back to displaying a 404.
            # 以下專案請修改爲本機動態域名解析可訪問的地址
			proxy_pass http://xxxxx:8080/robot;
			proxy_redirect default;
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
			
			proxy_connect_timeout 120;
			proxy_send_timeout 120;
			proxy_read_timeout 120;
			
			proxy_buffering on;
			proxy_buffer_size 32k;
			proxy_buffers 4 128k;
			proxy_busy_buffers_size 256k;
			proxy_max_temp_file_size 256k;
		}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

儲存設定並重啟nginx /etc/init.d/nginx restart,可打開公網域名的地址測試一下是否能正常訪問。

# 1.6. 儲存伺服器配置

返回至微信公眾號後臺,點選儲存伺服器配置以驗證伺服器是否可以訪問,如伺服器配置儲存成功,則說明伺服器已經可以訪問。點選伺服器配置的 啟用 按鈕以啟用伺服器配置。

# 1.7. FastWeb管理

在本機的命令列後臺停止現有的服務,然後在FastWeb中就可以使用通訊服務來管理微信公眾號服務的啟動與停止

# 1.8. 代理連線

本模組適合部署在具有固定公網IP地址的伺服器中,微信公眾號獲取授權令牌需配置在白名單中的IP地址才可使用。如果服務部署在非固定公網IP地址的伺服器中,可設定代理連線,將白名單設定為固定IP的代理伺服器地址。接下來將介紹使用方法。目前僅支援http代理的模式。

# 1.8.1. 修改配置檔案

配置檔案中 WeChat_Server 中有以下選項

wechat_proxy = True
wechat_proxy_server = xxxx
wechat_proxy_port = xxxx
wechat_proxy_username = xxxx
wechat_proxy_password = xxxx
1
2
3
4
5

設定 wechat_proxy 為 True時表示啟用代理功能。目前代理功能僅在獲取token 時啟用,其餘功能均不使用代理連線。

# 1.8.2. 代理服務端設定

在代理服務端建立python 檔案實現代理連線的功能:

# 代獲取微信公眾號 token
import requests
import logging
import json
from aiohttp import web
from logging.handlers import TimedRotatingFileHandler

# 配置日誌
log_filename = 'wechat_grant_token.log'
log_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
log_handler = TimedRotatingFileHandler(log_filename, when="D", interval=1, backupCount=7)
log_handler.setFormatter(log_formatter)
# 建立日誌記錄器
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(log_handler)

# RestAPI使用Agent
async def token_handler(request):
    try:
        grant_type = request.query.get('grant_type')
        appid = request.query.get('appid')
        secret = request.query.get('secret')
        if grant_type == 'client_credential':
            url="https://api.weixin.qq.com/cgi-bin/token"
            params={
                "grant_type": grant_type,
                "appid": appid,
                "secret": secret
            }
            response = requests.get(url=url,params=params)
            logger.info(f'{appid} 已請求token')
        return web.Response(text=json.dumps(response.json()))
    except Exception as e:
        logger.error(f'請求出錯:{e}')
        return web.Response(text=json.dumps({'error':e}))


app = web.Application(client_max_size=1024**3)
# 新增路由
app.router.add_get('/cgi-bin/token', token_handler)

if __name__ == "__main__":
    web.run_app(app, host='0.0.0.0', port=10316)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

將上述檔案命名為 wechat_grant_token.py,使用nohup python wechat_grant_token.py運行命令,繼續填寫以下內容。

wechat_proxy = True
wechat_proxy_restserver = http://xxxx.xxx.xx.xx:10316
1
2

# 2. Line

Line 服務需建立一個機器人,將相關的設定填寫到其中。

# 2.1. 取得 Line Token

  1. 登錄 Line Developer (opens new window)
  2. 建立機器人:
    • 建立 Provider -> 按下 Create
    • 建立 Channel -> 選擇 Create a Messaging API channel
    • 輸入完必填的基本數據
    • 輸入完成後,在 Basic Settings 下方,有一個 Channel Secret -> 按下 Issue,產生後即為 CHANNEL_SECRET (同時修改專案檔案config.ini中[Line_Bot] CHANNEL_SECRET )
    • 在 Messaging API 下方,有一個 Channel access token -> 按下 Issue,產生後即為 CHANNEL_ACCESS_TOKEN (同時修改專案檔案config.ini中[Line_Bot] CHANNEL_ACCESS_TOKEN)

# 2.2. 新增Webhook URL

在Line網頁設定 Webhook settings 中,先設定 Webhook URL,與 config.ini 中 [Line_Bot] 的 LINE_REMOTE_SERVER保持一致。同時設定 Use Webhook 為勾選狀態。

# 2.3. 設定反向代理

本機的環境訪問外部網路時,使用的是帶有公網IP的網路,使用云伺服器的反向代理服務,實現Line的公網服務訪問功能。在命令列中首先運行 python line_service.py,在遠端伺服器中設定反向代理資訊。以下以nginx為例:

		location /callback {
			# First attempt to serve request as file, then
			# as directory, then fall back to displaying a 404.
            # 以下專案請修改爲本機動態域名解析可訪問的地址
			proxy_pass http://xxxxx:5000/callback;
			proxy_redirect default;
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
			
			proxy_connect_timeout 120;
			proxy_send_timeout 120;
			proxy_read_timeout 120;
			
			proxy_buffering on;
			proxy_buffer_size 32k;
			proxy_buffers 4 128k;
			proxy_busy_buffers_size 256k;
			proxy_max_temp_file_size 256k;
		}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

儲存設定並重啟nginx /etc/init.d/nginx restart,可打開公網域名的地址測試一下是否能正常訪問。然後在 Line 控制檯的 Messaging API 中點選 Webhook URL 中的 Verify 按鈕,如果出現Success 的提示按鈕,則說明運行正常。可開展後續的服務。

整合運用

← 整合運用

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式