请求模型
# 接口信息
- 接口状态 : 正常
- 请求方式 :
WS
- 返回格式 :
JSON
# 请求地址
ws://XXXX/api/v1/call-dayu-model/
1
# websocket 建立连接参数
参数名 | 必选 | 类型 | 描述 |
---|---|---|---|
token | 是 | string | 参考鉴权后获取的 token |
# 请求示例
ws://XXXX/api/v1/call-dayu-model/?token=xxxxxxxx
1
# 响应参数
鉴权通过即建立 ws 连接。
# 模型请求参数
参数名 | 必选 | 类型 | 长度 | 描述 |
---|---|---|---|---|
question | 是 | string | - | 用户问题或图像 url(调用图像上传接口后返回的 url 地址) |
session_id | 否 | string | 36 | 唯一会话标识,由用户自行生成,需要确保唯一。 不传无法关联上下文进行回答,图像模型不用传 |
model_id | 否 | string | dayu-text 为文本模型,dayu-img 为图像模型, 默认为 dayu-text | |
stream | 否 | boolean | 是否流式返回,默认 True | |
language | 否 | string | 非必填项,模型回复语言,目前支持中英(zh、en),默认为 zh |
# 响应参数
参数名称 | 类型 | 描述 |
---|---|---|
status | int | 响应码 |
text | string | 模型返回数据 |
complete | boolean | 问答对结束标识 |
model_id | string | 请求的模型 id |
session_id | string | 请求会话唯一标识 |
request_id | string | 请求 id |
# 代码示例
注意 🔔️
需要先获取开发者凭证 前往获取开发者凭证 (opens new window)
- 示例一 :调用模型 👍
请参考以下示例进行调用
import asyncio
import json
from http import HTTPStatus
import websockets
import base64
async def connect_to_server():
# WebSocket 服务器地址
uri = "ws://XXXX/api/v1/call-dayu-model/"
# 获取 token
token, _ = get_auth()
# 要发送的参数,鉴权后获取的 token
params = {
"token": token,
}
# 将参数拼接到 WebSocket 地址上
uri_with_params = f"{uri}?{'&'.join([f'{k}={v}' for k, v in params.items()])}"
# 打开连接
websocket = await websockets.connect(uri_with_params)
return websocket
async def send_message(websocket, data):
# 发送消息
await websocket.send(json.dumps(data))
# 流式接收
async for response in websocket:
response = json.loads(response)
# 错误处理
if response.get('status') != HTTPStatus.OK:
print('Error')
break
# 流式传输结束
if response.get('complete'):
print(response)
print('Complete')
break
# 打印消息
print(f"{response.get('text', '')}")
async def main():
websocket = await connect_to_server()
flag = 2
# 图像调用
if flag == 1:
# 上传图像
result = img_file_upload()
if result['code'] == 200:
file_path = result['data']
question = file_path
model_id = "dayu-img"
else:
question = "你好,你是谁?"
model_id = "dayu-text"
data = {
"question": "你好,你是谁?", # 问题或图像 url(调用图像上传接口后返回的 url 地址)
"session_id": '7b4bbf67-d108-4333-b03b-d622dcecc25e', # 唯一会话标识,没有的话无法关联上下文
"model_id": "dayu-text", # 请求类型,dayu-text 为文本模型,dayu-img 为图像模型, 默认为 dayu-text
"stream": True, # 是否流式返回
"language": 'en' # 非必填项,模型回复语言,目前支持中英(zh、en),默认为 zh
}
response = await send_message(websocket, data)
await websocket.close()
return response
asyncio.run(main())
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# 响应示例
{'status': 200, 'text': '您好', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': ',', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': '我是', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': '大羽,南方院', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': '人工智能安全应急大语言模型,专注于', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': '安全应急领域。', 'complete': False, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
{'status': 200, 'text': '您好,我是大羽,南方院人工智能安全应急大语言模型,专注于安全应急领域。', 'complete': True, 'model_id': 'dayu-text', 'session_id': '7b4bbf67-d108-4333-b03b-d622dcecc25e', 'request_id': '2d3a79d1-9e57-96ce-9149-d426d4e377f5'}
1
2
3
4
5
6
7
2
3
4
5
6
7