• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 國內 >
     首頁(yè) > 新聞 > 國內 >

    Chatopera 智能問(wèn)答引擎

    2018-08-01 14:05:54   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


    智能問(wèn)答引擎

    智能問(wèn)答引擎

    智能問(wèn)答引擎是問(wèn)答服務(wù)的運行環(huán)境,包括可執行從多輪對話(huà)設計器導出的對話(huà)應用、基于常見(jiàn)問(wèn)題集的知識庫、意圖識別和服務(wù)統計監控等模塊。

    架構圖

    從部署拓撲結構上看,智能問(wèn)答引擎的架構如下圖所示:
    智能問(wèn)答引擎架構
    • superbrain:智能問(wèn)答引擎核心服務(wù)節點(diǎn),提供對外操作的Rest APIs,比如知識庫管理、多輪對話(huà)管理和監控統計等。
    • superbrain admin:智能問(wèn)答引擎管理控制臺,提供Web管理頁(yè)面,方便企業(yè)IT人員或業(yè)務(wù)人員管理智能問(wèn)答引擎。
    • siamese:底層服務(wù),知識庫搜索時(shí),文檔和查詢(xún)條件之間的相關(guān)度計算模塊。
    • Elasticsearch:底層服務(wù),存儲知識庫數據的服務(wù),在檢索時(shí),召回數據。
    • intent:底層服務(wù),提供意圖識別能力。
    • redis:底層服務(wù),緩存數據和做定時(shí)任務(wù)。
    • MongoDB:底層服務(wù),superbrain數據的持久化數據庫。
    在企業(yè)使用過(guò)程中,只需要訪(fǎng)問(wèn)superbrain的REST APIs和superbrain admin的Web頁(yè)面,底層服務(wù)的接口并不需要直接訪(fǎng)問(wèn)。同時(shí),上面的七個(gè)服務(wù),都是以docker鏡像的形式分發(fā),以docker容器的形式運行。

    安裝

    獲取服務(wù)鏡像

    當前,Chatopera智能問(wèn)答引擎只面向企業(yè)做私有部署,有合作意向的企業(yè)聯(lián)系下面郵箱,進(jìn)行洽談:
    聯(lián)系方式:info@chatopera.com
    洽談內容包括:
    • 概念驗證
    • 試用申請
    • 其他商業(yè)合作
    當您獲得智能問(wèn)答引擎的鏡像后,可以看到下面的文件:
    chatopera.superadmin.docker.v1.tgz
    chatopera.superbrain.docker.v1.tgz
    chatopera.siamese.docker.v1.tgz
    chatopera.mongodb.docker.v1.tgz
    chatopera.redis.docker.v1.tgz
    chatopera.elasticsearch.docker.v1.tgz

    依賴(lài)環(huán)境

    智能問(wèn)答引擎是使用docker鏡像進(jìn)行分發(fā)的,所以,只要是docker v12+ 版本支持的操作系統都可以運行智能問(wèn)答引擎服務(wù),對于更詳細的操作系統的兼容列表,請參考Docker Community Edition (CE)
    硬件方面,Chatopera推薦使用4Core CPU(Intel E5 or better), 16GB Memory,128GB Disk運行服務(wù)。
    智能問(wèn)答引擎的docker鏡像可以安裝在docker服務(wù)中,或docker registry中。然后通過(guò)容器管理框架,比如kubernetesApache Mesosdocker compose
    在本文檔中,介紹使用docker compose的方式部署和管理服務(wù),docker compose是輕量級的docker服務(wù)編排方案。
    • docker 版本
    Docker version 18.03.1-ce, build 9ee9f40
    安裝文檔,注意:docker為開(kāi)源碼程序,本文檔使用社區版本(Docker CE
    • docker-compose
    docker-compose version 1.21.1, build 5a3f1a3
    安裝文檔

    安裝鏡像

    假設docker已經(jīng)被安裝好,并且其進(jìn)程已經(jīng)啟動(dòng),在命令行終端,執行下面命令:
    docker load < chatopera.superadmin.docker.v1.tgz
    docker load < chatopera.superbrain.docker.v1.tgz
    docker load < chatopera.siamese.docker.v1.tgz
    docker load < chatopera.mongodb.docker.v1.tgz
    docker load < chatopera.redis.docker.v1.tgz
    docker load < chatopera.elasticsearch.docker.v1.tgz


    上述命令執行后,查看各個(gè)鏡像已經(jīng)安裝成功,使用命令:
    docker images

    描述服務(wù)

    在命令行終端,進(jìn)入一個(gè)文件路徑,智能問(wèn)答引擎的服務(wù)的數據文件將保存在這個(gè)路徑下,假設該路徑為 /app/chatbot。
    • 創(chuàng )建服務(wù)描述文件 docker-compose.yml
    docker-compose.yml:編排服務(wù)的描述文件
    version: '2'
    services:

      superadmin:
        image: "registry.chatopera.com/ada/superadmin:develop"
        restart: always
        environment:
         - SUPERBRAIN_API_URL=http://superbrain:8003/api/v1

      superbrain:
        image: "registry.chatopera.com/pintuan/superbrain:release"
        restart: always
        environment:
         - PORT_NUMBER=8003
         - SECRET_HASH=demo
         - MONGO_DB_URI=mongodb://mongodb/superbrain-dev
         - REDIS_HOST=redis
         - REDIS_PORT=6379
         - ELASTICSEARCH_HOST=http://elasticsearch:9200
         # - ELASTICSEARCH_AUTH=
         - ELASTICSEARCH_API_VERSION=5.2
        ports:
         - "8003:8003"
        volumes:
         - $PWD/superbrain/logs:/app/logs
        command: "node app.js"
        depends_on:
         - redis
         - mongodb
         - elasticsearch
         - siamese

      siamese:
        image: "registry.chatopera.com/pintuan/siamese:release"
        restart: always
        ports:
         - "8012:8012"
        volumes:
         - $PWD/siamese/logs:/logs
        environment:
         - TXT_LOG_LVL=DEBUG
         - SIAMESE_PORT=8012
         - SIAMESE_THREADS=24
         - SIAMESE_W2V_MODEL_EN=/word2vec/google-news-slim/GoogleNews-vectors-negative300-SLIM.bin.gz

      mongodb:
        image: "tutum/mongodb:3.2"
        restart: always
        volumes:
         - $PWD/mongodb/data:/data/db
        ports:
         - "27017:27017"
         - "27018:27018"
        environment:
         - AUTH=no

      redis:
        image: redis:latest
        restart: always
        command: redis-server --appendonly yes
        volumes:
         - $PWD/redis/data:/data
        ports:
         - "6379:6379"

      elasticsearch:
        image: "elasticsearch:5.2.0"
        restart: always
        environment:
         - bootstrap.memory_lock=true
         - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        volumes:
         - $PWD/elasticsearch/data:/usr/share/elasticsearch/data
         - $PWD/elasticsearch/plugins:/usr/share/elasticsearch/plugins
        ports:
         - "9200:9200"
         - "9300:9300"
        ulimits:
          memlock:
            soft: -1
            hard: -1
    該描述文件采用的格式是YML,該描述文件聲明了多個(gè)容器服務(wù)和它的配置,比如鏡像、環(huán)境變量、映射的磁盤(pán)、日志管理等。拷貝右側的代碼為/app/chatbot/docker-compose.yml。
    關(guān)于服務(wù)編排格式更多說(shuō)明

    創(chuàng )建磁盤(pán)路徑

    Docker容器是一種管理計算資源的方式,它讓開(kāi)發(fā)運營(yíng)軟件的構建、分發(fā)和運行做到了標準化。對于在容器運行過(guò)程中,不慎被刪除或崩潰,有可能造成數據丟失。一個(gè)解決方案是將Docker容器中應用產(chǎn)生的數據映射到宿主機器的磁盤(pán)上。
    在命令行終端中, 到/app/chatbot下,執行下面的命令:
    mkdir -p mongodb/data # 存儲 mongodb 數據
    mkdir -p elasticsearch/data # 存儲 elasticsearch 數據
    mkdir -p elasticsearch/plugins # elasticsearch 插件程序
    mkdir -p redis/data # 存儲 redis 數據
    mkdir -p superbrain/logs # 存儲 superbrain 日志

    啟動(dòng)服務(wù)

    完成磁盤(pán)路徑的創(chuàng )建后,就可以啟動(dòng)服務(wù)了。
    在命令行終端中, 到/app/chatbot下,執行下面的命令:
    docker-compose up -d
    這時(shí),命令會(huì )立即退出,因為該命令告訴docker-compose在后臺執行啟動(dòng)工作,服務(wù)啟動(dòng)需要1-2分鐘,這取決于運行服務(wù)的硬件資源。
    在命令行終端中, 到/app/chatbot下,執行下面的命令查看服務(wù)日志:
    docker-compose logs -f
    在服務(wù)啟動(dòng)的過(guò)程中,也可以看到相應日志。
    關(guān)于docker-compose up的更多使用介紹,請查看文檔
    在命令行終端中, 到/app/chatbot下,執行下面的命令查看服務(wù)啟動(dòng)狀態(tài):
    docker-compose ps
    在輸出中,為多列描述的各服務(wù)的信息,其中State列為其中狀態(tài),在沒(méi)有異常發(fā)生時(shí),各服務(wù)的State均為Up,輸出結果類(lèi)似下面:
    chatoperaio_elasticsearch_1        /docker-entrypoint.sh elas ...   Up      0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
    chatoperaio_intent_1               npm start                        Up      0.0.0.0:8027->8027/tcp
    chatoperaio_mongodb_1              /run.sh                          Up      0.0.0.0:27017->27017/tcp, 0.0.0.0:27018->27018/tcp, 28017/tcp
    chatoperaio_redis_1                docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
    chatoperaio_siamese_1              /root/venv-py2/bin/python2 ...   Up      0.0.0.0:8012->8012/tcp
    chatoperaio_superadmin_1           /bin/sh -c npm start             Up      3000/tcp
    chatoperaio_superbrain_1           node app.js                      Up      0.0.0.0:8003->8003/tcp

    以上代表服務(wù)正常啟動(dòng)了,這時(shí)可以通過(guò)訪(fǎng)問(wèn)智能問(wèn)答引擎控制臺來(lái)管理聊天機器人。
    http://服務(wù)器IP地址:8032

    管理控制臺

    智能問(wèn)答引擎管理控制臺是為方便企業(yè)IT人員或業(yè)務(wù)人員管理智能問(wèn)答引擎而設計的,在服務(wù)被正常啟動(dòng)后,管理控制臺的URL地址是:
    http://{{IP}}:8032
    注意: {{IP}}是docker容器運行的宿主機器IP地址。
    使用瀏覽器打開(kāi)該地址,即可使用管理控制臺,主要功能包括:
    • 聊天機器人增刪改差
    • 聊天機器人監控
    • 聊天機器人多輪對話(huà)管理
    • 聊天機器人知識庫管理

    聊天機器人管理

    進(jìn)入控制臺,可以看到所有聊天機器人并管理。
    控制臺
    點(diǎn)擊“新建”,創(chuàng )建一個(gè)聊天機器人。
    新建機器人
    新建完成后會(huì )直接進(jìn)入機器人詳情頁(yè)面,默認顯示設置標簽,更新機器人名字,描述等信息。
    管理詳情

    聊天機器人監控

    通過(guò)儀表盤(pán)可以查看機器人的使用情況。
    儀表盤(pán)
    多輪對話(huà)管理
    使用多輪對話(huà)設計器 設計對話(huà)應用并導出的程序包,程序包后綴名是.c66。導入可以看到對話(huà)列表,也可以設置各個(gè)對話(huà)的狀態(tài)。
    多輪對話(huà)
    多輪對話(huà)的函數環(huán)境變量可以在這里查看和設置。
    環(huán)境變量4
    同時(shí),也可以查看多輪對話(huà)的腳本。
    查看腳本
    點(diǎn)擊“邏輯”,查看聊天機器人的思維邏輯導圖。
    邏輯
    知識庫管理
    知識庫包括問(wèn)答對和近義詞,問(wèn)答對支持批量導入,導入文件格式必須是UTF-8編碼的CSV文件。
    該CSV文件的每一行內容格式為: 是否啟用,標準問(wèn),答案,擴展問(wèn)1,擴展問(wèn)2,擴展問(wèn)3
    CSV文件示例
    true,錢(qián)款數據在哪查,微信商戶(hù)支付平臺里
    false,怎么計算中獎呢,無(wú)法計算,中獎?dòng)嬎惴椒?br /> true,沒(méi)有二維碼,刷新當前頁(yè),看不到二維碼
    常見(jiàn)問(wèn)題
    在問(wèn)答對管理頁(yè)面,也支持導出問(wèn)答對為CSV文件,檢索問(wèn)答對等操作。
    編輯一個(gè)問(wèn)答對的標準問(wèn)、擴展問(wèn)、回復和狀態(tài)。
    問(wèn)題編輯
    為提高準確性,支持自定義近義詞。
    近義詞

    API

    智能問(wèn)答引擎與其他服務(wù)集成的方式是暴露出來(lái)的Rest API接口,接口可以分為以下幾類(lèi):
    資源 描述 路徑前綴
    聊天機器人 對象的增刪改查 /api/v1/chatbot
    多輪對話(huà) 查詢(xún),導入和狀態(tài)管理 /api/v1/chatbot/:ChatbotID/conversation
    多輪對話(huà) 問(wèn)答的使用情況統計數據 /api/v1/chatbot/:chatbotID/conversation/query/counts
    知識庫FAQ問(wèn)答對 增刪改查和狀態(tài)管理 /api/v1/chatbot/:chatbotID/faq/database
    知識庫近義詞 增刪改查 /api/v1/chatbot/:ChatbotID/faq/synonyms
    知識庫 問(wèn)答的使用情況統計數據 /api/v1/chatbot/:chatbotID/faq/query/counts
    意圖識別 分析接口 /api/v1/chatbot/:ChatbotID/intent/parse
    應用健康 狀態(tài)查詢(xún)接口 /ping

    基本規范

    在Rest API接口中,請求包括協(xié)議(http/https),IP地址(Host),HTTP頭字段(Headers),HTTP報文主體(Body 可選)。
    • 請求(Request)
    在智能問(wèn)答引擎服務(wù)啟動(dòng)后,通過(guò) http 協(xié)議處理請求,如無(wú)特殊說(shuō)明,每個(gè)接口都有如下設置:
    Host: {{IP}}
    Headers: Content-Type application/json
    注意: 1. {{變量}}代表變量; 2. {{IP}}代表服務(wù)運行的宿主機器的IP地址。
    • 響應(Response)
    如無(wú)特殊說(shuō)明,返回值都是JSON數據格式,在正常返回下,格式符合如下形式:
    {
      "rc": 0,
      "data": ...
    }   
    其中,rc代表請求是否被滿(mǎn)足,0代表滿(mǎn)足;rc非0時(shí),代表有異常,不同的異常類(lèi)型使用不同的數字,在每個(gè)API中介紹。
    異常返回的一般形式:
    {
      "rc": 非0的正整數,
      "error": ...,
      "msg": ...
    }   

    POST /api/v1/chatbot/:ChatbotID

    cURL:創(chuàng )建聊天機器人
    curl --request POST \
      --url 'http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}' \
      --header 'Content-Type: application/json' \
      --data '{
      "name": "小叮當",
      "primaryLanguage": "zh_CN"
    }'
    創(chuàng )建聊天機器人

    BODY

    {
      "name": "小叮當",
      "primaryLanguage": "zh_CN"
    }   
    字段 必須 類(lèi)型 描述
    chatbotID string 機器人的唯一ID,是以字母開(kāi)始的由[a-zA-Z0-9_]組成的字符串。
    name string 機器人的名稱(chēng)。
    primaryLanguage string 機器人的語(yǔ)言,現在支持兩個(gè)選項:["zh_CN", "en_US"],分別代表中文和英文。
    description string 機器人的描述

    成功返回

    {
        "rc": 0,
        "data": {
            "chatbotID": "{{chatbotID}}",
            "name": "小叮當",
            "fallback": "我不明白您的意思。",
            "description": "智能問(wèn)答和對話(huà)任務(wù)",
            "welcome": "你好!我是機器人客服。",
            "primaryLanguage": "zh_CN"
        }
    }
    返回字段說(shuō)明:
    fallback:聊天機器人的兜底回復。
    description:聊天機器人的描述。
    welcome:歡迎語(yǔ)。

    異常返回

    {
        "rc":2,
        "error":"already exists."
    }
    返回字段說(shuō)明:
    rc:非0正整數代表不同的異常類(lèi)型,比如,當前rc是2,異常描述為“already exists.”,說(shuō)明該{{chatbotID}}已經(jīng)存在了。

    PUT /api/v1/chatbot/:ChatbotID

    cURL:更新聊天機器人
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}} \
      -H 'Content-Type: application/json' \
      -d '{
        "fallback": "我不能理解您的意思。",
        "description": "聊天機器人",
        "welcome": "我的特長(cháng)是聊天。"
    }'
    更新聊天機器人

    BODY

    {
        "fallback": "我不能理解您的意思。",
        "description": "聊天機器人",
        "welcome": "我的特長(cháng)是聊天。"
    }
    字段 必須 類(lèi)型 描述
    fallback string 機器人兜底回復,在多輪對話(huà)查詢(xún)沒(méi)有匹配到回復時(shí)使用。
    description string 描述該機器人。
    welcome string 歡迎語(yǔ),保留字段,暫時(shí)未使用。
    對于機器人的chatbotID,name和primaryLanguage都是在創(chuàng )建時(shí)設定的,設定后不能變更。

    成功返回

    {
        "rc": 0,
        "data": {
            "chatbotID": "{{chatbotID}}",
            "fallback": ...,
            "description": ...,
            "welcome": ...
        }
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID

    cURL:獲取聊天機器人信息
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}} \
      -H 'Content-Type: application/json'
    獲取聊天機器人信息

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "chatbotID": "{{chatbotID}}",
            "name": "小叮當",
            "fallback": "我不明白您的意思。",
            "description": "智能問(wèn)答和對話(huà)任務(wù)",
            "welcome": "你好!我是機器人客服。",
            "primaryLanguage": "zh_CN"
        }
    }

    異常返回

    {
        "rc": 3,
        "error": "not exist."
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot

    cURL:獲取聊天機器人列表
    curl -X GET \
      'http://{{IP}}:8003/api/v1/chatbot?sortby=-created&q={"chatbotID": "department_1"}' \
      -H 'Content-Type: application/json'
    獲取聊天機器人列表

    QUERY

    支持在URL中添加query信息來(lái)查詢(xún)機器人和翻頁(yè)等操作,比如 /api/v1/chatbot?page=1&limit=10&fields=chatbotID name&q={"name": "test"},各參數介紹如下:
    屬性 類(lèi)型 描述 默認值 示例
    limit number 返回本頁(yè)數據的條數 100 10
    page number 返回哪一頁(yè)(可根據total進(jìn)行判斷) 1 2
    fields string 返回哪些字段 除_id 和 __v之外的所有字段 chatbotID name
    sortby string 按照哪個(gè)字段進(jìn)行排序 -created (按照 created 降序)
    q string 按照字段查詢(xún) {"name": "test"}

    BODY

    null

    成功返回

    {
        "total": 1,
        "rc": 0,
        "current_page": 1,
        "total_page": 1,
        "data": [
            {
                "name": "小叮當",
                "chatbotID": "{{chatbotID}}",
                "primaryLanguage": "zh_CN",
                "fallback": "我不明白您的意思。",
                "welcome": "你好!我是機器人客服。",
                "description": "智能問(wèn)答和對話(huà)任務(wù)"
            },
            ...
        ]
    }
    返回字段說(shuō)明:
    total代表聊天機器人數量。
    current_page代表當前頁(yè),total_page代表總頁(yè)數。
    data是聊天機器人數據。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    DELETE /api/v1/chatbot/:ChatbotID

    cURL:刪除一個(gè)聊天機器人
    curl -X DELETE \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}} \
      -H 'Content-Type: application/json' \
    刪除一個(gè)聊天機器人

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "message": "done."
        }
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotID/faq/database

    cURL:創(chuàng )建問(wèn)答對
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database \
      -H 'Content-Type: application/json' \
      -d '{
        "post": "怎么開(kāi)通微信支付?",
        "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
        "enabled": true
    }'
    創(chuàng )建問(wèn)答對

    BODY

    {
        "post": "怎么開(kāi)通微信支付?",
        "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
        "enabled": true
    }
    字段 必須 類(lèi)型 描述
    post string 問(wèn)答對的問(wèn)題,也稱(chēng)“標準問(wèn)”
    reply string 問(wèn)題對應的回復
    enabled boolean 是否“啟用”,啟用代表該問(wèn)答對在檢索時(shí)被使用;否則不被檢索

    成功返回

    {
        "rc": 0,
        "data": {
            "id": "{{docId}}}"
        }
    }
    返回字段說(shuō)明:
    docId代表該問(wèn)答對的唯一標識。

    異常返回

    {
        "rc": 3,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID/faq/database/:docId

    cURL:根據文檔Id查詢(xún)問(wèn)答對詳情
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}} \
      -H 'Content-Type: application/json'
    根據文檔Id查詢(xún)問(wèn)答對詳情

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "id": "{{docId}}",
            "post": "怎么開(kāi)通微信支付?",
            "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
            "enabled": true
        }
    }

    異常返回

    {
        "rc": 3,
        "error": {
            "msg": "Not Found"
        }
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:ChatbotID/faq/database/:docId

    cURL:根據文檔ID更新問(wèn)答對
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}} \
      -H 'Content-Type: application/json' \
      -d '{
        "post": "怎么開(kāi)通微信支付?",
        "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
        "enabled": true
    }'
    根據文檔ID更新問(wèn)答對

    BODY

    {
        "post": "怎么開(kāi)通微信支付?",
        "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
        "enabled": true
    }
    字段 必須 類(lèi)型 描述
    post string 問(wèn)答對的問(wèn)題,也稱(chēng)“標準問(wèn)”
    reply string 問(wèn)題對應的回復
    enabled boolean 是否“啟用”,啟用代表該問(wèn)答對在檢索時(shí)被使用;否則不被檢索

    成功返回

    {
        "rc": 0,
        "data": {
            "id": "{{docId}}"
        }
    }

    異常返回

    {
        "rc": 3,
        "error": {
            "msg": "Not Found"
        }
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    DELETE /api/v1/chatbot/:ChatbotID/faq/database/:docId

    cURL:根據文檔ID刪除問(wèn)答對
    curl -X DELETE \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}} \
      -H 'Content-Type: application/json'
    根據文檔ID刪除問(wèn)答對

    BODY

    null

    成功返回

    {
        "rc": 0,
        "message": "done"
    }

    異常返回

    {
        "rc": 3,
        "error": {
            "msg": "Not Found"
        }
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID/faq/database

    cURL:查詢(xún)問(wèn)答對列表,可根據字段查詢(xún),支持分頁(yè)
    curl -X GET \
      'http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database?limit=30' \
      -H 'Content-Type: application/json'
    查詢(xún)問(wèn)答對列表,可根據字段查詢(xún),支持分頁(yè)

    QUERY

    在url中,支持使用檢索條件,比如 /api/v1/chatbot/{{chatbotID}}/faq/database?page=1&limit=10,各參數介紹如下:
    屬性 類(lèi)型 描述 默認值 示例
    limit number 返回本頁(yè)數據的條數 5 10
    page number 返回哪一頁(yè)(可根據total進(jìn)行判斷) 1 2

    BODY

    null

    成功返回

    {
        "total": 354,
        "current_page": 1,
        "total_page": 12,
        "data": [
            {
                "post": "上架商品就不能修改了是嗎?",
                "is_original": true,
                "reply": "沒(méi)有訂單產(chǎn)生時(shí)可以修改",
                "enabled": true,
                "id": "{{docId}}"
            },
            ...
        ]
    }

    異常返回

    {
        "rc": 3,
        "error": {
            "msg": "[index_not_found_exception] no such index
        }
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:chatbotID/faq/database/:docId/extend

    cURL:創(chuàng )建擴展問(wèn)
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}}/extend \
      -H 'Content-Type: application/json' \
      -d '{
        "post": "怎樣支持微信支付?"
    }
    '
    創(chuàng )建擴展問(wèn),擴展問(wèn)關(guān)聯(lián)一個(gè)問(wèn)答對,擴展問(wèn)是標準問(wèn)的另一種問(wèn)法。一個(gè)問(wèn)答對可以關(guān)聯(lián)多個(gè)擴展問(wèn)。
    擴展問(wèn)可以使系統更智能,提高檢索的準確率。

    BODY

    {
        "post": "怎樣支持微信支付?"
    }
    字段 必須 類(lèi)型 描述
    post string 與標準問(wèn)意思一致的另一種問(wèn)法,也稱(chēng)“擴展問(wèn)”。

    成功返回

    {
        "rc": 0,
        "data": {
            "id": "{{extendId}}"
        }
    }
    返回字段說(shuō)明:
    extendId是該擴展問(wèn)的唯一標識。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:chatbotID/faq/database/:docId/extend

    cURL:查詢(xún)擴展問(wèn)
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}}/extend \
      -H 'Content-Type: application/json'
    查詢(xún)擴展問(wèn)

    BODY

    null

    成功返回

    {
        "total": 1,
        "current_page": 1,
        "total_page": 1,
        "data": [
            {
                "post": "怎樣支持微信支付?",
                "is_original": false,
                "postId": "{{docId}}",
                "enabled": true,
                "id": "{{extendId}}"
            },
            ...
        ],
        "rc": 0
    }

    異常返回

    {
        "rc": 3,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:chatbotID/faq/database/:docId/extend/:extendId

    cURL:更新擴展問(wèn)
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}}/extend/{{extendId}} \
      -H 'Content-Type: application/json' \
      -d '{
        "post": "怎樣支持微信支付?"
    }
    '
    更新擴展問(wèn)

    BODY

    {
        "post": "怎樣支持微信支付?"
    }
    字段 必須 類(lèi)型 描述
    post string 與標準問(wèn)意思一致的另一種問(wèn)法,也稱(chēng)“擴展問(wèn)”。

    成功返回

    {
        "rc": 0,
        "data": {
            "id": "{{extendId}}"
        }
    }
    返回字段說(shuō)明:
    extendId是該擴展問(wèn)的唯一標識。

    異常返回

    {
        "rc": 3,
        "error": {
            "msg": "Not Found"
        }
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    DELETE /api/v1/chatbot/:chatbotID/faq/database/:docId/extend/:extendId

    cURL:刪除擴展問(wèn)
    curl -X DELETE \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/{{docId}}/extend/{{extendId}} \
      -H 'Content-Type: application/json'
    刪除擴展問(wèn)

    BODY

    null

    成功返回

    {
        "rc": 0,
        "message": "done"
    }

    異常返回

    {
        "rc": 3,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID/faq/database/export

    cURL:導出問(wèn)答對數據
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/database/export \
      -H 'Content-Type: application/json'
    導出問(wèn)答對數據

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": [
            [
                true,
                "怎么開(kāi)通微信支付?",
                "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付",
                "如何支持微信支付"
            ],
            ...
        ]
    }
    返回字段說(shuō)明:
    data是問(wèn)答對的所有數據,每個(gè)元素代表一個(gè)問(wèn)答對。 每個(gè)元素又是一個(gè)數組,按照順序分別代表:[enabled,標準問(wèn),回復,0~多個(gè)擴展問(wèn)]。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotID/faq/synonyms

    cURL:創(chuàng )建近義詞
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/synonyms \
      -H 'Content-Type: application/json' \
      -d '{
        "text": "番茄",
        "neighbors": ["西紅柿", "狼桃"]
    }'
    創(chuàng )建近義詞,近義詞可以進(jìn)一步提高系統的智能水平。

    BODY

    {
        "text": "番茄",
        "neighbors": ["西紅柿", "狼桃"]
    }
    字段 必須 類(lèi)型 描述
    text string 詞匯
    neighbors [string] 與text意思相近的詞匯

    成功返回

    {
        "rc": 0,
        "data": {
            "text": "番茄",
            "chatbot": "{{chatbotID}}",
            "neighbors": [
                "西紅柿",
                "狼桃"
            ],
            "id": "{{synonymsId}}"
        }
    }
    返回字段說(shuō)明:
    synonymsId是該近義詞組的唯一標識。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID/faq/synonyms/:synonymsId

    cURL:使用synonymsId獲取近義詞詳情
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/synonyms/{{synonymsId}} \
      -H 'Content-Type: application/json'
    使用synonymsId獲取近義詞詳情

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "text": "番茄",
            "neighbors": [
                "西紅柿",
                "狼桃"
            ]
        }
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:ChatbotID/faq/synonyms/:synonymsId

    cURL:更新近義詞
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/synonyms/{{synonymsId}} \
      -H 'Content-Type: application/json' \
      -d '{
        "text": "番茄",
        "neighbors": ["西紅柿", "狼桃", "洋柿子"]
    }'
    更新近義詞

    BODY

    {
        "text": "番茄",
        "neighbors": ["西紅柿", "狼桃", "洋柿子"]
    }

    成功返回

    {
        "rc": 0,
        "data": {
            "text": "番茄",
            "neighbors": [
                "西紅柿",
                "狼桃",
                "洋柿子"
            ]
        }
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }

    DELETE /api/v1/chatbot/:ChatbotID/faq/synonyms/:synonymsId

    cURL:刪除近義詞
    curl -X DELETE \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/synonyms/{{synonymsId}} \
      -H 'Content-Type: application/json'
    刪除近義詞

    BODY

    null

    成功返回

    {
        "rc": 0,
        "message": "done"
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotID/faq/synonyms

    cURL:查詢(xún)近義詞列表,支持分頁(yè)和按字段查詢(xún)
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/synonyms \
      -H 'Content-Type: application/json'
    查詢(xún)近義詞列表,支持分頁(yè)和按字段查詢(xún)

    BODY

    null

    成功返回

    {
        "total": 1,
        "rc": 0,
        "current_page": 1,
        "total_page": 1,
        "data": [
            {
                "text": "番茄",
                "chatbot": "{{chatbotID}}",
                "neighbors": [
                    "西紅柿",
                    "狼桃",
                    "洋柿子"
                ],
                "id": "{{synonymsId}}"
            },
            ...
        ]
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotID/faq/query

    cURL:根據查詢(xún)句子查詢(xún)答案, 返回答案列表,并帶有分數
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/query \
      -H 'Content-Type: application/json' \
      -d '{
        "query": "如何開(kāi)通微信支付"
    }'
    根據查詢(xún)句子查詢(xún)答案, 返回答案列表,并帶有分數

    BODY

    {
        "query": "如何開(kāi)通微信支付"
    }
    字段 必須 類(lèi)型 描述
    query string 從知識庫中檢索的目標

    成功返回

    {
        "rc": 0,
        "data": [
            {
                "id": "{{docId}}",
                "score": 0.647,
                "post": "怎么開(kāi)通微信支付?",
                "reply": "登錄微信公眾號平臺,點(diǎn)擊左側微信支付菜單欄,按照開(kāi)通步驟開(kāi)通微信支付"
            }
        ]
    }
    返回字段說(shuō)明:
    data是一個(gè)數組,包含0~多個(gè)問(wèn)答對,并且按照匹配程度降序,匹配程度就是該問(wèn)答對的問(wèn)題和query的相似度。
    相似度是屬于[0-1]區間的值,越大代表語(yǔ)義越相似。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotID/faq/click

    cURL:記錄FAQ點(diǎn)擊事件
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/faq/click \
      -H 'Content-Type: application/json' \
      -d '{
        "query": "如何開(kāi)通微信支付",
        "groundtruth": "如何支持微信支付",
        "negatives": ["如何支持支付", "怎么取消微信支付"]
    }'
    記錄FAQ點(diǎn)擊事件:在客服人員點(diǎn)擊建議問(wèn)時(shí),將訪(fǎng)客的問(wèn)題和客服點(diǎn)擊的問(wèn)題記錄下來(lái)。
    點(diǎn)擊事件具有很重要的價(jià)值:
    1. 梳理業(yè)務(wù),提高商業(yè)智能;
    2. 方便統計系統使用情況;
    3. 評估系統準確率;
    4. 優(yōu)化系統準確率,比如訓練更好的機器學(xué)習模型。
    所以,該接口應保證盡可能調用。

    BODY

    {
        "query": "如何開(kāi)通微信支付",
        "groundtruth": "如何支持微信支付",
        "negatives": ["如何支持支付", "怎么取消微信支付"]
    }
    字段 必須 類(lèi)型 描述
    query string 原始查詢(xún)
    groundtruth string 準確答案
    negatives [string] 被展示為建議答案但是沒(méi)有被選中的候選回復

    成功返回

    {
        "rc": 0,
        "message": "done"
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:chatbotID/intent/parse

    cURL:意圖識別服務(wù)
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/intent/parse \
      -H 'Content-Type: application/json' \
      -d '{
        "query": "can I have my cashback",
            "clientId": "gmis"
    }'
    使用機器學(xué)習模型,分析意圖和實(shí)體。

    BODY

    {
        "query": "我想取錢(qián)",
        "clientId": "{{clientId}}"
    }
    字段 必須 類(lèi)型 描述
    query string 待被分析意圖的句子
    clientId string 客戶(hù)唯一標識,目前意圖識別模型依賴(lài)每個(gè)客戶(hù)的數據,和客戶(hù)的業(yè)務(wù)關(guān)系緊密,每個(gè)客戶(hù)單獨制作。

    成功返回

    {
        "rc": 0,
        "data": {
            "tag": "{{intentId}}",
            "score": 2.515
        }
    }
    返回字段說(shuō)明:
    如果rc為0,但是data中不包含tag和score時(shí),代表程序未能識別出意圖。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotId/conversation

    cURL:獲得對話(huà)列表
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation \
      -H 'Content-Type: application/json'
    獲得對話(huà)列表

    BODY

    null

    成功返回

    {
        "rc": 0,
        "total": 1,
        "current_page": 1,
        "total_page": 1,
        "data": [
            {
                "chatbotID": "{{chatbotID}}",
                "name": "{{conversationName}}",
                "enabled": true,
                "id": "{{conversationId}}"
            },
            ...
        ]
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:ChatbotId/conversation/:conversationId

    cURL:獲得對話(huà)詳情
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/{{conversationId}} \
      -H 'Content-Type: application/json' \
    獲得對話(huà)詳情

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "chatbotID": "{{chatbotID}}",
            "name": "course",
            "modified": "2018-07-11T09:39:58.349Z",
            "created": "2018-07-02T12:02:43.037Z",
            "scriptBody": "+ _resolve_course_\n- 您好,我是小云,您的課程顧問(wèn),請問(wèn)您家小孩多大了?\n\n+ 一年級老師\n- ^get_teachers(1)",
            "enabled": true,
            "id": "{{conversationId}}"
        }
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:ChatbotId/conversation/:conversationId/enable

    cURL:使對話(huà)處于"啟用"狀態(tài)
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/{{conversationId}}/enable
    使對話(huà)處于"啟用"狀態(tài)

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "name": "course",
            "chatbotID": "{{chatbotID}}",
            "enabled": true,
            "id": "{{conversationId}}"
        }
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:ChatbotId/conversation/:conversationId/disable

    cURL:使對話(huà)處于"禁用"狀態(tài)
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/{{conversationId}}/disable \
    使對話(huà)處于"禁用"狀態(tài)

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "name": "course",
            "chatbotID": "{{chatbotID}}",
            "enabled": false,
            "id": "{{conversationId}}"
        }
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /api/v1/chatbot/:chatbotID/conversation/environment

    cURL:獲取環(huán)境變量
    curl -X GET \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/environment \
    獲取環(huán)境變量
    環(huán)境變量是多輪對話(huà)的在“設計階段”和“部署階段”不共享的變量。具體應用場(chǎng)景見(jiàn)多輪對話(huà)設計器:快速開(kāi)始

    BODY

    null

    成功返回

    {
        "rc": 0,
        "data": {
            "USERNAME": "張三"
        }
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    PUT /api/v1/chatbot/:chatbotID/conversation/environment

    cURL:更新環(huán)境變量
    curl -X PUT \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/environment \
      -H 'Content-Type: application/json' \
      -d '{
            "USERNAME": "李四",
            "PASSWORD": "123456"
        }'
    更新環(huán)境變量

    BODY

    {
        "USERNAME": "李四",
        "PASSWORD": "123456"
    }

    成功返回

    {
        "rc": 0,
        "msg": "done"
    }
    返回字段說(shuō)明:

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotId/conversation/query

    cURL:對話(huà)問(wèn)答查詢(xún)
    curl -X POST \
      http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/query \
      -H 'Content-Type: application/json' \
      -d '{
        "fromUserId": "{{uid}}",
        "textMessage": "北京今天天氣怎么樣",
        "isDebug": false
    }'
    對話(huà)問(wèn)答查詢(xún)

    BODY

    {
        "fromUserId": "{{uid}}",
        "textMessage": "北京今天天氣怎么樣",
        "isDebug": false
    }

    成功返回

    {
        "rc": 0,
        "data": {
            "state": "default",
            "createdAt": 1531910247845,
            "string": "白天天氣多云,并且空氣濕度偏大,在這種天氣條件下,您會(huì )感到有些悶熱,不很舒適。",
            "topicName": "weather",
            "subReplies": [],
            "logic_is_fallback": false,
            "botName": "小叮當"
        }
    }
    返回字段說(shuō)明:
    state是一些業(yè)務(wù)需求的約定字段,比如,對話(huà)要完成“用戶(hù)認證”,那么在完成認證后,state會(huì )返回auth_succ;認證失敗時(shí),返回auth_fail,該字段可通過(guò)對話(huà)腳本設定。
    logic_is_fallback代表該回復是否是兜底。
    topicName代表當前機器人正在聊的話(huà)題。
    botName代表聊天機器人的名字。

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    POST /api/v1/chatbot/:ChatbotId/conversation/droplet/import

    cURL:導入對話(huà)應用文件
    ZIPFILE=小叮當-1.0.0-conversations.c66
    set -x
    curl -i -X POST -H "Content-Type: multipart/form-data" \
        -F "droplet=@$ZIPFILE" \
        -F "USERNAME=李四" \
        -F "PASSWORD=123456" \
        http://{{IP}}:8003/api/v1/chatbot/{{chatbotID}}/conversation/droplet/import
    導入對話(huà)應用文件
    對話(huà)應用文件示例詳見(jiàn)天氣查詢(xún)機器人:多輪對話(huà)示例程序

    BODY

    multipart表單,環(huán)境變量使用-F設定鍵值對,對話(huà)應用文件設置droplet的文件路徑,參考cURL樣例程序。

    成功返回

    {
      "rc": 0,
      "data": {
        "msg": "Import is done successfully."
      }
    }

    異常返回

    {
        "rc": 1,
        "error": ...
    }
    返回字段說(shuō)明:
    rc為正整數時(shí),代表異常,異常描述為error。

    GET /ping

    cURL:獲取應用健康狀態(tài)
    curl -X GET \
      http://{{IP}}:8003/ping \
      -H 'Content-Type: application/json'
    獲取應用健康狀態(tài)

    BODY

    null

    成功返回

    {
        "timestamp": 1531918165514,
        "uptime": 8783.43,
        "application": {
            "name": "superbrain",
            "version": "1.0.0",
            "pid": 1,
            "title": "node",
            "argv": [
                "/usr/local/bin/node",
                "/app/app.js"
            ],
            "versions": {
                "http_parser": "2.8.0",
                "node": "8.11.3",
                "v8": "6.2.414.54",
                "uv": "1.19.1",
                "zlib": "1.2.11",
                "ares": "1.10.1-DEV",
                "modules": "57",
                "nghttp2": "1.32.0",
                "napi": "3",
                "openssl": "1.0.2o",
                "icu": "60.1",
                "unicode": "10.0",
                "cldr": "32.0",
                "tz": "2017c"
            }
        },
        "resources": {
            "memory": {
                "rss": 369848320,
                "heapTotal": 130859008,
                "heapUsed": 108874240,
                "external": 18007788
            },
            "loadavg": [
                0.35302734375,
                0.28759765625,
                0.2412109375
            ],
            "cpu": [
                {
                    "model": "Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz",
                    "speed": 2500,
                    "times": {
                        "user": 1586270600,
                        "nice": 0,
                        "sys": 1050236500,
                        "idle": 21709890800,
                        "irq": 0
                    }
                },
                {
                    "model": "Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz",
                    "speed": 2500,
                    "times": {
                        "user": 1562807900,
                        "nice": 0,
                        "sys": 1015181800,
                        "idle": 21782348900,
                        "irq": 0
                    }
                }
            ],
            "disk": [
                {
                    "filesystem": "overlay",
                    "size": 123721700,
                    "used": 94808660,
                    "available": 22605316,
                    "capacity": 0.81,
                    "mount": "/"
                },
                {
                    "filesystem": "tmpfs",
                    "size": 65536,
                    "used": 0,
                    "available": 65536,
                    "capacity": 0,
                    "mount": "/dev"
                },
                {
                    "filesystem": "tmpfs",
                    "size": 8216392,
                    "used": 0,
                    "available": 8216392,
                    "capacity": 0,
                    "mount": "/sys/fs/cgroup"
                },
                {
                    "filesystem": "/dev/vda1",
                    "size": 123721700,
                    "used": 94808660,
                    "available": 22605316,
                    "capacity": 0.81,
                    "mount": "/app/logs"
                },
                {
                    "filesystem": "shm",
                    "size": 65536,
                    "used": 0,
                    "available": 65536,
                    "capacity": 0,
                    "mount": "/dev/shm"
                },
                {
                    "filesystem": "tmpfs",
                    "size": 8216392,
                    "used": 0,
                    "available": 8216392,
                    "capacity": 0,
                    "mount": "/sys/firmware"
                }
            ],
            "nics": {
                "lo": [
                    {
                        "address": "127.0.0.1",
                        "netmask": "255.0.0.0",
                        "family": "IPv4",
                        "mac": "00:00:00:00:00:00",
                        "internal": true,
                        "cidr": "127.0.0.1/8"
                    }
                ],
                "eth0": [
                    {
                        "address": "172.19.0.15",
                        "netmask": "255.255.0.0",
                        "family": "IPv4",
                        "mac": "02:42:ac:13:00:0f",
                        "internal": false,
                        "cidr": "172.19.0.15/16"
                    }
                ]
            }
        },
        "system": {
            "arch": "x64",
            "platform": "linux",
            "type": "Linux",
            "release": "4.4.0-62-generic",
            "hostname": "29866b45ce71",
            "uptime": 2453892,
            "cores": 2,
            "memory": 16827174912
        }
    }
    返回字段說(shuō)明:
    描述應用和操作系統的各種數據。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 长岛县| 绥江县| 靖宇县| 盐津县| 水富县| 昌乐县| 静安区| 龙州县| 邳州市| 忻州市| 舒兰市| 思茅市| 拜泉县| 师宗县| 榕江县| 白山市| 竹山县| 海南省| 日照市| 上饶市| 建阳市| 商城县| 济宁市| 德化县| 海晏县| 大足县| 高雄县| 陆良县| 南城县| 屯留县| 云和县| 分宜县| 炉霍县| 邵阳县| 苏尼特右旗| 新郑市| 黑龙江省| 蚌埠市| 西畴县| 阿合奇县| 甘泉县| http://444 http://444 http://444 http://444 http://444 http://444