整合运用
# 整合运用
以下将介绍企业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 | 模型的回答信息 |