整合運用
# 整合運用
以下將介紹企業GPT如何與愛招飛產品以及第三方軟體實現整合運用。
# 1. 愛招飛產品與企業GPT的整合運用(API)
在愛招飛產品中,可以自行定義數據接入的API,實現企業GPT相關的數據的輸入。目前支援自定API的產品有愛招飛的 FastWeb (opens new window) 以及 TaskRunner (opens new window)。以下將介紹企業GPT支援輸出的API的說明。
# 1.1. 獲取API規格資訊
根據API編號獲取API規格資訊的描述。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_api | 是 |
apicode | API的編號 | 是 |
- 返回結果示例(返回結果中的content是API的定義說明):
{
"status": "ok",
"exceltime": "2023-10-18 13:59:27",
"tabledata": [
{
"id": "82CF60E1-6404-43EC-8D1C-B819B25264AB",
"groupid": "Root",
"code": "aipid",
"name": "PID控制器",
"time": "2023-07-05T16:27:50.263Z",
"url": null,
"httptype": null,
"content": "API documentation:\r\n\r\nBASE URL: http://127.0.0.1:8123\r\n\r\nEndPoint:/bestvalue\r\n\r\nThis endpoint provides prase the PID Controller mininum of sumweight value,and the Kp、Ki、Kd、Setpoint Value.\r\n\r\nQuery parameters table(don't generate any other parameters not in the list):\r\nRequest parameters\r\nkpmin | the Kp Value Min. default value is 5.\r\nkpmax | the Kp Value Max. default value is 30.\r\nkpstep | the Kp Value increase Step.default value is 0.1.\r\nkimin | the Ki Value Min. default value is 5.\r\nkimax | the Ki Value Max. default value is 25.\r\nkistep | the Ki Value increase Step. default value is 0.1.\r\nkdmin | the Kd Value Min. default value is 0.\r\nkdmax | the Kd Value Max. default value is 0.\r\nkdstep | the Kd Value increase Step. default value is 0.1.\r\nsetpointmin | the Setpoint Value Min. default value is 30.7.\r\nsetpointmax | the setpoint Value Max. default value is 30.7.\r\nsetpointstep | the setpoint Value increase Step. default value is 0.1\r\n\r\nResponse schema (JSON object):\r\nisfinish | bool | is the prediction finished.\r\nmin_kp | float | when the sumweight is min. the kp value is.\r\nmin_ki | float | when the sumweight is min. the ki value is.\r\nmin_kd | float | when the sumweight is min. the kd value is.\r\nmin_setpoint | float | when the sumweight is min. the setpoint value is.\r\nmin_sumweight| float | when the sumweight is min. the sumweight value is.\r\n",
"isuse": true
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1.2. 獲取提示詞模板
根據提示詞模板編號獲取提示詞模板的內容。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_get_prompttempate | 是 |
promptcode | 提示詞模板的編號 | 是 |
- 返回結果示例(返回結果中的
template
是模板的說明):
{
"status": "ok",
"exceltime": "2023-10-18 14:06:38",
"tabledata": [
{
"id": "00FAAAA8-DD19-43A4-A3A5-B8525B4297F1",
"groupid": "61615F6F-844D-404C-9E64-440A489D14C7",
"code": "W-0002",
"name": "提供改善生產力的建議",
"time": "2023-07-21T14:11:38.563Z",
"template": "你是一名工作生產力專家,我目前有工作生產力不佳的問題,我時常會遇到這個問題:{question},請提供我改善生產力的具體建議。\r\n",
"example": null,
"isuse": true
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1.3. 獲取聊天記錄分組資訊
根據提供的資訊獲取聊天記錄分組,如果提供的分組在資料庫中不存在,則重新建立分組。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_get_service_recordgroup | 是 |
username | 使用者名稱稱 | 是 |
name | 分組名稱 | 否 |
- 返回結果示例
{
"status": "ok",
"exceltime": "2023-10-18 14:21:31",
"tabledata": [
{
"id": "04636A11-3772-4D82-AD96-5A454F92B3B0",
"userid": null,
"username": "demo",
"name": "你好",
"createtime": "2023-08-10T21:04:53.677Z",
"updatetime": "2023-08-10T21:05:19.897Z"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1.4. 獲取tag列表
根據提供的資訊獲取已線上的isobean,tag列表,用於向isobean發送實時監控數據。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_get_taglist | 是 |
modulecode | Bean模組的編號 | 是 |
- 返回結果示例(其中的
tag
就是所需的tag資訊)
{
"status": "ok",
"exceltime": "2023-10-18 14:27:17",
"tabledata": [
{
"guid": "Hc3FH1gNPT10D8495CA#@@#O7F",
"moduleguid": "E1E66E33-77AC-470D-9760-D07628C9D24C",
"modulecode": "wb-vis-0043_gptbot",
"modulename": "GPT智能助手",
"moduletype": "BEAN",
"jsname": "O7F",
"sid": "Hc3FH1gNPT10D8495CA",
"username": "demo",
"token": "3A2E2A30898F96DB46B4780240A5A182",
"createtime": "2023-10-18T14:26:58.000Z",
"tag": "AEDE1D9E-5586-4EE2-906C-FE859E3D4FA6",
"userkey": "D795B2B5-67C0-4674-9961-4AA574311C8D",
"isobeanno": null
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1.5. 獲取訓練數據集
用於獲取資料庫中儲存的訓練數據。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_get_traindata | 是 |
traincode | 訓練數據集的編號 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:31:36",
"tabledata": [
{
"instruction": "你好!",
"input": "",
"output": "你好!有什麼我可以幫助你的嗎?"
}
]
}
2
3
4
5
6
7
8
9
10
11
# 1.6. 獲取知識庫
用於獲取資料庫中儲存的知識庫的基礎資訊。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_knowledge | 是 |
knowledgecode | 知識庫的編號 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:38:22",
"tabledata": [
{
"id": "E34DE857-C2A6-4102-B98E-9049877C19C2",
"groupid": "7D0A504D-9A8F-44E3-AB44-02D294DFF7E9",
"knowledgetype": "txt",
"code": "erp",
"name": "erp",
"time": "2023-08-29T10:56:41.440Z",
"note": null,
"data": null,
"isuse": true,
"fileurl": "files/doc/gpt/erp.txt",
"isvectorstore": true,
"iszip": true
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1.7. 獲取即時通訊記錄資訊
用於獲取資料庫中儲存的即時通訊記錄資訊。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_sms | 是 |
smscode | 即時通訊記錄的編號 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:43:10",
"tabledata": [
{
"id": "B949F351-FBAE-4091-9733-DB7B2692D04C",
"groupid": "CC29B794-BCFA-442C-8A56-37B0582DAC95",
"code": "wechatmp",
"name": "微信公眾號",
"content": "#微信公眾號機器人服務的相關選項\r\n[WeChat_Server]\r\nHOST = 0.0.0.0\r\n# 微信公眾號僅支援使用80埠,所以此處設定的埠需使用其他反向代理工具來設定比如Nginx\r\nPORT = 8080\r\nWECHAT_REMOTE_SERVER = \r\n# 微信公眾號的相關設定\r\n[WeChat_MP]\r\nTOKEN = \r\nAPP_ID = \r\nAPP_SECRET = \r\nENCODING_AES_KEY = \r\n# 設定語言模型的接入方式\r\n# 選項包含agent(使用agent接入) knowledgebase (使用知識庫接入)\r\nLLM_MODE = knowledgebase\r\n# 如果使用knowledgebase接入,設定預設使用的知識庫,使用FastWeb中的知識庫編號\r\nKNOWLEDGEBASE = isoface_cn\r\n# 設定語音的型別,可選擇以下型別\r\n# zhitian_emo 甜美女聲\r\n# zhizhe_emo 精神男聲\r\n# zhiyan_emo 中氣女聲\r\n# zhibei_emo 女聲\r\nTTS_CHARACTER = zhitian_emo\r\n",
"skey": null,
"ssecret": null,
"isuse": true,
"time": "2023-07-11T15:43:04.797Z"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1.8. 獲取工具資訊
用於獲取資料庫中儲存的工具資訊。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_tool | 是 |
toolcode | 工具的編號 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00",
"tabledata": [
{
"id": "052F0990-4A31-48D5-B828-AF923225009C",
"groupid": "3CADD048-0BD8-47C0-862C-53CD07733B5C",
"code": "aipid",
"name": "PID型別",
"isuse": true,
"content": "def aipid(text: str) -> str:\r\n \"\"\"Returns API Calling, use this for any \\\r\n questions related to data analyzing from API. \\\r\n The input text should be the Human ORIGINAL input, \\\r\n and this function will always return analyze \\\r\n result.\"\"\"\r\n chain_new = PureAPIChain.from_llm_and_api_docs(llm, api_docs.AIPID_DOCS, headers=headers, verbose=True)\r\n return str(chain_new(text))\r\n",
"time": "2023-08-05T14:14:39.443Z"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.9. 更新回答資訊
將回答的資訊插入到資料庫的問答記錄中。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_completition | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 問答記錄的唯一編號資訊 | 是 |
completion | 回答的文字 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.10. 更新模型運行記錄
更新模型運行記錄。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_modlelog | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 運行記錄的唯一編號資訊 | 是 |
isfinish | 是否已結束運行 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.11. 建立監控警報
建立新的監控警報資訊。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_set_monitor_alarm | 是 |
sid | 設備的名稱 | 是 |
alarmtype | 報警型別 | 是 |
description | 報警描述資訊 | 是 |
# 1.12. 更新監控警報
更新新的監控警報資訊。
- method: GET
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_monitor_alarm | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
id | 警報記錄的唯一編號資訊 | 是 |
duration | 警報記錄的持續時間 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.13. 結束監控警報
結束特定監控警報資訊。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_finish_monitor_alarm | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
id | 警報記錄的唯一編號資訊 | 是 |
duration | 警報記錄的持續時間 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.14. 更新提示詞語句
更新分組提示詞語句資訊。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_prompt | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
username | 使用者名稱稱 | 是 |
groupid | 分組ID | 是 |
prompt | 提示詞語句 | 是 |
isuseagent | 是否使用代理 | 是 |
servicesmsid | 提問發佈的渠道資訊 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.15. 更新即時通訊運行記錄
更新即時通訊的運行記錄資訊。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_smslog | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 即時通訊記錄ID | 是 |
isfinish | 是否為結束狀態 | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 1.16. 更新模型訓練運行記錄
更新模型訓練運行記錄資訊。
- method: POST
- endpoint
/
- contenttype: application/json
- query params:
名稱 | 說明 | 是否必須 |
---|---|---|
restapi | 指定參數名稱,此項需指定為 gpt_update_trainlog | 是 |
- body
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 模型訓練記錄ID | 是 |
isfinish | 是否為結束狀態 | 是 |
modelpath | 模型路徑 | 是 |
groupid | 分組ID | 是 |
- 返回結果示例:
{
"status": "ok",
"exceltime": "2023-10-18 14:47:00"
}
2
3
4
# 2. Python API 的整合運用(監控、服務運行)
以下的服務預設為連線至 FastWeb 的 WebSocket 服務端,並且註冊連線 ID 為 main_websocket
。
如需要向 API 發送資訊,請遵循以下的內容格式:
{
"action": "msg",
"sid": "main_websocket",
"text": "{TEXT}"
}
``
其中的 "{TEXT}" 是 json 的文字串,如果組裝為 text 的取值,則需要對其中出現的特殊符號作轉義處理,比如 {"hello":"hi"} , 實際寫成
```json
"action": "msg",
"sid": "main_websocket",
"text": "{\"hello\":\"hi\"}"
2
3
4
5
6
7
8
9
10
11
12
13
以下內容僅介紹 json 文字串中出現的參數的設定。
# 2.1. 啟動、停止 Line 服務
啟動停止通訊服務。
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 運行記錄編號 | 是 |
sms | 運行模式,True 表示運行,False 表示停止。 | 是 |
smscode | 即時通訊服務的編號,目前支援 linebot , wechatmp | 是 |
# 2.2. 啟動、停止 gpt_bot 的服務
名稱 | 說明 | 是否必須 |
---|---|---|
gpt_bot | 運行 gpt_bot ,True 表示啟動,False 表示停止 | 是 |
# 2.3. 重新啟動GPT_BOT服務
名稱 | 說明 | 是否必須 |
---|---|---|
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
gpt_bot_restart | 是否使用重啟 | 是 |
# 2.4. WeChat 服務重啟
名稱 | 說明 | 是否必須 |
---|---|---|
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
wechatmp_restart | 是否使用重啟 | 是 |
# 2.5. LineBot 服務重啟
名稱 | 說明 | 是否必須 |
---|---|---|
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
linebot_restart | 是否使用重啟 | 是 |
# 2.6. 模型服務
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 模型運行記錄ID | 是 |
model_service | 運行模型服務 | 是 |
modelpath | 模型路徑 | 是 |
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
# 2.7. 微調服務
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 模型運行記錄ID | 是 |
finetune | 是否啟用模型微調 | 是 |
traincode | 訓練庫編號 | 是 |
groupid | 群組ID | 是 |
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
originalmodelpath | 原模型路徑 | 是 |
batch_size | 批次大小 | 是 |
gradient_steps | 梯度 | 是 |
logging_steps | 日誌步長 | 是 |
save_steps | 儲存步長 | 是 |
learning_rate | 學習率 | 是 |
train_epochs | 迭代次數 | 是 |
# 2.8. 同步、設定參數資訊
名稱 | 說明 | 是否必須 |
---|---|---|
monitor_option | 監控選項,有 get 與 set | 是 |
username | 使用者名稱,FastWeb | 是 |
tag | 使用者標籤 | 是 |
language | set 選項必須使用,語言選項 | 否 |
monitor_cycle | set 選項必須使用,監控時間間隔 | 否 |
alarm_cpuutil_threshold | set 選項必須使用,CPU使用量上限限制 | 否 |
alarm_cpuutil_threshold_time | set 選項必須使用,CPU使用量上限持續時長 | 否 |
alarm_cpuram_threshold | set 選項必須使用,記憶體使用率上限限制 | 否 |
alarm_cpuram_threshold_time | set 選項必須使用,記憶體使用率持續時長 | 否 |
alarm_gpuutil_threshold | set 選項必須使用,GPU使用率上限限制 | 否 |
alarm_gpuutil_threshold_time | set 選項必須使用,GPU使用率持續時長 | 否 |
alarm_gpuram_threshold | set 選項必須使用,GPU視訊記憶體上限限制 | 否 |
alarm_gpuram_threshold_time | set 選項必須使用,GPU視訊記憶體持續時長 | 否 |
alarm_email_enable | set 選項必須使用,是否啟用郵件功能 | 否 |
smtp_server | set 選項必須使用,SMTP 伺服器 | 否 |
smtp_port | set 選項必須使用,SMTP 伺服器埠 | 否 |
smtp_username | set 選項必須使用,SMTP 使用者名稱 | 否 |
smtp_password | set 選項必須使用,SMTP 密碼 | 否 |
smtp_tls | set 選項必須使用, SMTP TLS 功能 | 否 |
from_address | set 選項必須使用,來源郵件 | 否 |
to_address | set 選項必須使用,發送郵件 | 否 |
# 3. Python API 的整合運用(GPT服務)
GPT_BOT中的服務分為HTTP API 與 WebSocket API,以下將分別介紹。
# 3.1. HTTP API (目前僅支援區域網地址訪問):
本機地址: http://192.168.0.146:8100
# 3.1.1. 檔案訪問(用於提供知識庫文字的傳輸)
method: GET
endpoint: /file/{filename}
endpoint: /temp/{filename}
# 3.1.2. Langchain Agent 服務
此項是為公共的聊天服務設定的HTTP API,為內部使用
method: POST
endpoint: /agent
- contenttype: application/json
- body: JSON object,使用的參數如下
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
agent | 是否使用agent模式,需設定為 True 才能正常使用 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
# 3.1.3. Langchain 知識庫問答服務
此項是為公共的聊天服務設定的HTTP API 為內部使用
method: POST
endpoint: /knowledgebase
- contenttype: application/json
- body: JSON object,使用的參數如下
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
knowledgebase | 是否使用知識庫模式,需設定為 True 才能正常使用 | 是 |
knowledgecode | 使用的知識庫編號 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
# 3.2. WebSocket API
以下的服務預設為連線至 FastWeb 的 WebSocket 服務端,並且註冊連線 ID 為 gpt_bot
。
如需要向 API 發送資訊,請遵循以下的內容格式:
{
"action": "msg",
"sid": "gpt_bot",
"text": "{TEXT}"
}
``
其中的 "{TEXT}" 是 json 的文字串,如果組裝為 text 的取值,則需要對其中出現的特殊符號作轉義處理,比如 {"hello":"hi"} , 實際寫成
```json
"action": "msg",
"sid": "gpt_bot",
"text": "{\"hello\":\"hi\"}"
2
3
4
5
6
7
8
9
10
11
12
13
以下內容僅介紹 json 文字串中出現的參數的設定。
# 3.2.1. 知識庫問答
發送提問資訊后,根據知識庫的內容回答,回答也通過 WebSocket 輸出,發送至智能助手的 Bean 界面
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
knowledgecode | 使用的知識庫編號 | 是 |
knowledgetype | 知識庫檔案的副檔名 | 是 |
fileurl | 知識庫檔案的地址 | 否 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
temperature | 回答的隨機度 | 是 |
max_tokens | 最大的輸出詞元數量 | 是 |
top_p | top_p 數值 | 是 |
stream | 是否使用流式輸出 | 是 |
# 3.2.2. APIChain 使用
語言模型根據需求,呼叫API獲取數據。
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
apicode | API規格編號 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
temperature | 回答的隨機度 | 是 |
max_tokens | 最大的輸出詞元數量 | 是 |
top_p | top_p 數值 | 是 |
# 3.2.3. 修改 API 規格
發送此訊息后,可實現 API 規格說明檔案的修改。
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
apicode | API規格編號 | 是 |
editapicode | 是否編輯 API 規格描述,如果此項為 False , 則表示刪除對應的 API 規格描述文字 | 是 |
# 3.2.4. 修改 Agent 工具描述
發送此訊息后,可實現 API 規格說明檔案的修改。
名稱 | 說明 | 是否必須 |
---|---|---|
username | 發送訊息的使用者編號,對應FastWeb中的使用者名稱 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
apicode | API規格編號 | 是 |
editapicode | 是否編輯 API 規格描述,如果此項為 False , 則表示刪除對應的 API 規格描述文字 | 是 |
# 3.2.5. 修改 通訊方式設定
發送此資訊后,可實現公共聊天機器人的設定修改。
名稱 | 說明 | 是否必須 |
---|---|---|
username | 發送訊息的使用者編號,對應FastWeb中的使用者名稱 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
smscode | 公共聊天編號 | 是 |
editsmscode | 是否編輯 聊天機器人設定,如果此項為 False , 則表示刪除對應的設定資訊 | 是 |
# 3.2.6. 聊天模式
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
chatmode | 是否為聊天模式 | 是 |
stream | 是否以流式輸出 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
temperature | 回答的隨機度 | 是 |
max_tokens | 最大的輸出詞元數量 | 是 |
top_p | top_p 數值 | 是 |
# 3.2.7. 使用提示詞模板
使用提示詞模板向語言模型提問。
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
promptcode | 使用的提示詞編號 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
temperature | 回答的隨機度 | 是 |
max_tokens | 最大的輸出詞元數量 | 是 |
top_p | top_p 數值 | 是 |
# 3.2.8. 使用 Agent 運行
使用Agent運行
名稱 | 說明 | 是否必須 |
---|---|---|
guid | 回答記錄的唯一ID,用於指示向資料庫插入記錄的ID | 是 |
prompt | 提示語句的內容 | 是 |
tag | 標籤記號,設定發送給某個編號 | 是 |
agent | 是否使用Agent模式 | 是 |
lang | 設定語言模型回答使用的語言,預設為 zh-cn ,如要使用繁體中文回覆設定為 zh-tw | 否 |
# 3.2.9. 儲存知識庫 產生向量儲存檔案
儲存檔案時,用於產生向量儲存檔案
名稱 | 說明 | 是否必須 |
---|---|---|
username | 發送訊息的使用者名稱 | 是 |
knowledgecode | 知識庫編號 | 是 |
vectorstore_build | 是否設定向量儲存,預設為 True | 是 |
knowledgetype | 知識庫檔案的副檔名 | 是 |
fileurl | 獲取知識庫檔案的地址(FastWeb的相對地址) | 是 |
tag | 發送的標記編號 | 是 |
# 3.2.10. 刪除知識庫
如果刪除了知識庫的設定,同步刪除知識庫檔案以及對應產生的向量儲存。
名稱 | 說明 | 是否必須 |
---|---|---|
delete_file | 是否刪除檔案 | 是 |
knowledgecode | 知識庫編號 | 是 |
knowledgetype | 知識庫檔案的副檔名 | 是 |
# 3.2.11. 知識庫壓縮包合併爲文字
名稱 | 說明 | 是否必須 |
---|---|---|
knowledgecode | 知識庫編號 | 是 |
iszip | 是否為壓縮包 | 是 |
knowledgetype | 知識庫檔案的副檔名 | 是 |
fileurl | 獲取知識庫檔案的地址(FastWeb的相對地址) | 是 |
username | 發送訊息的使用者名稱 | 是 |
tag | 發送的標記編號 | 是 |
# 4. Python API 整合運用(語音服務)
語音識別與語音合成服務使用語音識別與TTS語音合成的模型,
本機示例地址: http://192.168.0.146:8333
提供以下幾種方式訪問運行:
# 4.1. 檔案訪問(僅本機地址可訪問):
method: GET endpoint: /audio/{filename}
# 4.2. 專門面向聊天工具使用的RestAPI
# 4.2.1. 語音識別為文字
- method: POST
- endpoint
/voice_tts
- contenttype: application/json
- body: JSON object,使用的參數如下
名稱 | 說明 | 是否必須 |
---|---|---|
sid | 發送客戶端的websocket SID | 否 |
guid | 發送的唯一ID | 否 |
smscode | 使用的聊天工具的型別 | 否 |
fileurl | 識別的音訊檔案的URL地址,地址需為服務能訪問到的地址,檔案格式必須為wav | 是 |
filename | 檔案的名稱 | 是 |
language | 識別結果的語言,預設值為zh-cn ,可設定為zh-tw | 否 |
- 返回結果示例:
{
"text":"你好。",
"text_postprocessed":"你好",
"sentences": []
}
2
3
4
5
# 4.2.2. 文字合成為語音
- method: POST
- endpoint
/voice_tts
- contenttype: application/json
- body: JSON object,使用的參數如下
名稱 | 說明 | 是否必須 |
---|---|---|
sid | 發送客戶端的websocket SID | 否 |
guid | 發送的唯一ID | 否 |
smscode | 使用的聊天工具的型別 | 否 |
response | 需要合成的文字內容 | 是 |
filename | 輸出檔案的名稱 | 是 |
- 返回結果示例:
{
"guid":"test",
"smscode":"wechatmp",
"audiofile":"audio_reply.wav"
}
2
3
4
5
# 4.3. 輸入音訊檔案流返回識別結果
此項功能是企業GPT智能助手的語音識別功能的實現方法。
- method: POST
- endpoint
/voice_stream
- contenttype: multipart/form-data
- body: form表單數據使用的參數如下
名稱 | 說明 | 是否必須 |
---|---|---|
audio | 發送的音訊檔案(其中包含了檔名與檔案本體) | 是 |
language | 識別結果的語言型別,預設值為zh-cn ,可設定為zh-tw | 否 |
- 返回結果示例:
{
"text":"你好。",
"text_postprocessed":"你好",
"sentences": []
}
2
3
4
5
# 4.4. 愛招飛IsoBean運用
愛招飛的GPT智能助手使用isobean功能實現,企業GPT服務端使用websocket功能向智能助手頁面發送資訊,實現實時監控數據的更新、GPT回答資訊的動態更新等相關的功能。企業GPT服務運行時產生的日誌資訊也通過websocket發送,這樣在檢視日誌界面可以看到運行的日誌資訊。
# 4.4.1. 發送即時資訊
以下方法適用於發送即時訊息,發送的訊息會顯示于FastWeb主界面。
{"username":username,"action":"callback","tag":tag,
"data":{"callbackcomponent":"WebHomeFrame","callbackeventname":"update",
"callbackparams":[{"paramname":"messagetype","paramvalue":"success"},{"paramname":"title","paramvalue":"success"},{"paramname":"message","paramvalue":"監控配置修改成功"}]}}
2
3
可使用的參數說明如下:
參數名稱 | 說明 |
---|---|
title | 彈窗的型別,success :成功 warning :警告 error :錯誤 |
message | 彈窗顯示的文字內容 |
# 4.4.2. 更新日誌記錄
更新平臺日誌的資訊。
{"username":"demo","action":"callback","tag":guid,"data":{"callbackcomponent":beancode, "callbackeventname":"update","callbackparams":[{"paramname":"log_message","paramvalue":log_message}]}}
可使用的參數說明如下:
參數名稱 | 說明 |
---|---|
guid | 運行記錄的ID |
beancode | 呼叫日誌模組的編號,目前設定為 wb-vis-0044_logdata |
log_message | 待更新的日誌資訊 |
# 4.4.3. 資料庫更新日誌記錄
新增資料庫中的運行日誌詳細資訊。
{"action":"execsql","db_name":"demo","sql_command_id":"gpt_updatelog","params"
:[{"name":"sourceid","value":guid},{"name":"logdata","value":log_message}]}
2
可使用的參數說明如下:
參數名稱 | 說明 |
---|---|
guid | 運行記錄的ID |
log_message | 待更新的日誌資訊 |
# 4.4.4. 更新模型記錄
模型更新的記錄格式如下:
{"action":"execsql","db_name":"demo","sql_command_id":"gpt_updatemodel","params"
:[{"name":"id","value":params['guid']},{"name":"modelpath","value":modelfolder}]
2
可使用的參數說明如下:
參數名稱 | 說明 |
---|---|
id | 模型運行記錄的ID |
modelfolder | 模型的目錄路徑 |
# 4.4.5. 更新模型回答
更新模型的回答記錄。
{"username":"demo","action":"callback","tag":tag,"data":{"callbackcomponent":"wb-vis-0043_gptbot","callbackeventname":"updateresponse","callbackparams":[{"paramname":"response","paramvalue":response}]}}
可使用的參數說明如下:
參數名稱 | 說明 |
---|---|
tag | 智能助手標籤 |
response | 模型的回答資訊 |