大羽安全应急模型 开发者文档 大羽安全应急模型 开发者文档
首页
  • 简 介
  • 快速开始
  • 返回响应码
  • 鉴权
  • 图像上传
  • 请求模型
  • 使用配置
首页
  • 简 介
  • 快速开始
  • 返回响应码
  • 鉴权
  • 图像上传
  • 请求模型
  • 使用配置
  • 指南

    • 简 介
    • 快速开始
    • 返回响应码
  • API接口

    • 鉴权
    • 图像上传
    • 请求模型
    目录

    请求模型

    # 接口信息

    • 接口状态 : 正常
    • 请求方式 :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

    # 响应示例

    {'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
    图像上传

    ← 图像上传

    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式