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

yesye發表於2021-09-11
摘要:我用一個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:

Content-Type:application/json

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浙江省高考滿分作文為例,原文地址:

請求示例:

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

import json
import requests

"""
所有全域性變數
"""
# 代理
PROXY = {
        "http": "",
        "https": "https:// xxx:xxx@xxx.com: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精選手冊》。

 4.18MB

——活動推薦——

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

華為雲API學習賽,為入門初學者量身定製的學習平臺,以賽帶學,學以致用。無需程式碼,只需下載體驗模板,按操作文件操作即可完成作品。參賽、邀請都有豐富獎品,還有機會拿P40 5G手機超級激勵!!

 

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

  •   
  •   

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

  •   
  •   

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2041/viewspace-2796434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章