天天看點

【API進階之路】破圈,用一個API代替10人内容團隊

摘要:我用一個API代替10人内容團隊,一年幫老闆省了一百萬。

自從學習API以後,我用技術手段相繼幫助業務部、市場部解決了不少難題,算是從純研發破圈發展到了業務端。老闆召開業務讨論會的時候也會帶上我,希望我能從技術角度幫助公司解決業務問題,提升業務的效率和業績。

前幾天的業務讨論會上,業務部門提出:現在官網的整體流量已具規模,接下來要加大資訊内容的營運力度,将原本的資訊内容獨立出來成為一個單獨的産品,通過優質内容給業務導流,提升現有使用者的留存率。說白了就是給公司建立一個私域流量池,将使用者聚集沉澱下來。

按照營運部門的規劃,需要專門組建一支編輯團隊來負責資訊産品的内容生産,主要職責包括:内容轉載、改編、摘要編輯、内容推薦等。根據官網的日通路量和内容需求的速度預估,現有的3人遠遠不夠,至少需要再招聘10個編輯。

老闆覺得13人的編輯團隊成本有點高,且新團隊組建的風險也比較大。沉默了一會兒後,他看向我:“聽說有一種技術,可以自動篩選和擷取優質的文章,你了解嗎?”我還沒開口,營運老大說:“擷取的文章還是需要編輯來寫摘要和推薦語,這些也都是工作量。”他說得很有道理,必須同時解決篩選内容、擷取内容、摘要生成等多個問題。

在心裡默默地過了一遍我了解的API,有一個“文本摘要生成API”正好可以滿足我們這個場景,整理了一下思路後,我回答了他們的問題:

“我們可以利用現有技術擷取站外優質内容,由編輯同僚提供内容擷取來源,用關鍵詞分析API和語義分析API判斷擷取内容的健康度,然後用“文本摘要生成API”對内容進行分析,提取文章的核心内容,自動生成文章摘要,最後由編輯來做優質内容的推薦和push,這樣下來最多3個編輯就夠了。”

老闆聽完非常開心,當即敲定就這麼辦!散會後我馬上寫了一個文檔,讓部門的研發同僚去執行。

“文本摘要生成API”的調用方式如下。

一、不會寫代碼?通過postman調用。

1.1 擷取Token

發送一條POST請求。

POST:https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

Content-Type:application/json

Body:           
{
    "auth": { 
        "identity": { 
            "methods": [ 
                "password" 
            ], 
            "password": { 
                "user": { 
                    "name": "華為雲使用者名", 
                    "password": "華為雲密碼", 
                    "domain": { 
                        "name": "華為雲使用者名" 
                    } 
                } 
            } 
        }, 
        "scope": { 
            "project": { 
                "name": "cn-north-4" 
            } 
        } 
    } 
}      

請求結果:點選[Headers],檢視x-subject-token對應的值。如圖所示。

【API進階之路】破圈,用一個API代替10人内容團隊

1.2 請求接口

1.2.1 擷取項目ID

登入華為雲 →點選控制台 →點選自己使用者名[我的憑證] →項目cn-north-4對應的項目ID。

1.2.2 調用postman

發送一條POST請求

POST:https://nlp-ext.cn-north-4.myhuaweicloud.com/v1/{project id}/nlg/summarization/domain

Headers:

X-Auth-Token:上一步擷取的Token值

Body:

{
    "length_limit": 50,
    "title": "文章标題",
    "lang": "zh",
    "content": "文章内容"
}      

參數:length_limit 表示生成摘要的長度限制

  • 如果 length_limit > 1,則表示摘要的具體字數;
  • 如果 0 <= length_limit <=1,則表示生成摘要占原文長度的百分比;

預設數值為0.3

【API進階之路】破圈,用一個API代替10人内容團隊

請求結果:

【API進階之路】破圈,用一個API代替10人内容團隊

二、會寫代碼?Python為你一條龍服務

以2020浙江省聯考滿分作文為例,原文位址:https://zhuanlan.zhihu.com/p/166373560

請求示例:

#-*- version: Python3.0 -*
#-*- coding: UTF-8      -*

import json
import requests

"""
所有全局變量
"""
# 代理
PROXY = {
        "http": "http://xxx:[email protected]:8080/",
        "https": "https:// xxx:[email protected]:8080/"
    }

# 華為雲賬号、密碼、
NAME = "xxx"
PASSWD = "xxx"

ENDPOINT = 'nlp-ext.cn-north-4.myhuaweicloud.com'  # 華北-北京四
PROJECT_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'    # 控制台-使用者名-我的憑證

# Token的有效期為24小時,需要使用一個Token鑒權時,可以先緩存起來,避免頻繁調用。
def Get_Token(name, passwd, project_name):
    URL = 'https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens'
    headers = {'Content-Type': 'application/json'}
    post_data = { 
        "auth": 
        { 
            "identity": 
            { 
                "methods": [ "password" ], 
                "password": 
                { 
                    "user": 
                    { 
                        "name": name, 
                        "password": passwd, 
                        "domain": {"name": name} 
                    } 
                } 
            }, 
            "scope": {"project": {"name": project_name}} 
        }
    }
    post_data = json.dumps(post_data, ensure_ascii=False)
    content = requests.post(url=URL, data=post_data.encode('utf-8'), headers=headers, proxies=PROXY, verify=False)
    token = content.headers["x-subject-token"]
    # print(token)
    return token

# 讀取文章
def Read_News(frname):
    with open(frname, 'r', encoding='utf-8') as fr:
        return fr.read()

def Use_API_NLG_summarization(token, title, content):
    # URL是URI的一個子集  {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
    serve_name = 'nlg/summarization/domain'     # 服務名和下面請求資料格式對應
    URI = "https://{endpoint}/v1/{project_id}/{serve_name}".format(endpoint=ENDPOINT, project_id=PROJECT_ID, serve_name=serve_name)
 
    post_data = {
        "length_limit": 50,
        "title": title,
        "lang": "zh",
        "content": content
    }

    headers = {
        'Content-Type': 'application/json',
        'X-Auth-Token': token
    }
 
    post_data = json.dumps(post_data, ensure_ascii=False)
    content = requests.post(url=URI, data=post_data.encode('utf-8'), headers=headers, proxies=PROXY, verify=False)
    content = json.loads(content.text)
    print(content)


if __name__ == "__main__":

    token = Get_Token(NAME, PASSWD, "cn-north-4")
    Use_API_NLG_summarization(token, "生活在樹上", Read_News("./tmp_news.txt")[:10000])      

主函數執行,傳回結果。

【API進階之路】破圈,用一個API代替10人内容團隊

從傳回結果可以看出此API對作文的中心思想進行了精準地提取。

通過API自動完成文章擷取、篩選、摘要提取,一篇文章隻需要十幾秒,不僅不用新招内容營運,原有3個編輯的工作也輕松了不少。資訊網站上的内容豐富了,使用者活躍度也提升了,不少使用者留言:“每天來你們這看看新聞,都養成習慣了。”

——分割線——

“免費下載下傳創新加速利器《華為雲API精選手冊》。

華為雲API精選手冊(第一期刊).pdf 4.18MB

——活動推薦——

華為雲已經成為全球主要雲服務供應商,在華為雲上開放了2400+ API,包括計算、存儲、網絡、應用服務、軟體開發服務、視訊、資料庫、EI智能等74+産品,如何利用這些豐富強大的API快速開發自己的應用和服務,成為大家關注的熱點。

華為雲API學習賽,為入門初學者量身定制的學習平台,以賽帶學,學以緻用。無需代碼,隻需下載下傳體驗模闆,按操作文檔操作即可完成作品。參賽、邀請都有豐富獎品,還有機會拿P40 5G手機超級激勵!!

API入門學習賽·AI人臉識别

  •   報名位址
  •   獎項設定

API入門學習賽·探險尋寶之旅

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀