
新鈦雲服已累計為您分享844篇技術乾貨

為了解決傳統賬單處理中人工查詢效率低下、響應速度慢及易出錯等問題,同時順應AI技術發展趨勢,提升服務智慧化水平。隨著業務規模擴大和賬單資料複雜度增加,人工處理已難以滿足高效管理需求。我們想到透過AI技術,製作一個賬單機器人,自動化完成賬單查詢與分析,節省人力成本,讓使用者快速獲取準確資訊,提升滿意度。

上圖為基於阿里雲百鍊實現賬單機器人的完整流程。具體步驟如下:
-
使用者透過私聊或者@飛書機器人的方式提出賬單相關的問題。 -
計算巢AppFlow透過飛書接收訊息事件觸發連線流,將問題傳遞給大模型服務平臺百鍊。 -
大模型服務平臺百鍊利用其強大的AI能力生成相應的查詢SQL語句。 -
生成的SQL語句被髮送到函式計算(FC)服務,由FC 執行SQL查詢,從SLS中獲取所需的賬單資料。 -
百鍊平臺根據返回的賬單資料生成最終的答案。 -
答案透過計算巢 AppFlow 返回給飛書機器人。 -
最後,飛書機器人將答案呈現給使用者。

點選https://fcnext.console.aliyun.com/cn-shanghai/functions此連結,在右側選單欄中選擇“函式”,在函式介面上點選“建立函式”按鈕。

選擇“事件函式”,在基本設定裡填寫“函式名稱”。在函式程式碼中,選擇“內建執行時/Python/Python3.12”執行環境,程式碼上傳方式暫時選擇“使用示例程式碼”中的“Hello,world!示例”。高階配置裡的請求處理程式變更為“index.main”,“時區”選擇“Asia/Shanghai 北京時間”,“函式角色”選擇“AliyunFcDefaultRole”,“允許訪問 VPC”選擇“否”,“允許函式預設網絡卡訪問公網”選擇“是”,“日誌功能”選擇啟用,其他配置保持預設就行。完成上述配置後點擊“建立按鈕”。


點選剛建立的函式,進行下一步配置。

選單欄中選擇“程式碼”,將下面的程式碼填寫到index.py裡(注意需要修改程式碼裡的配置!)。完成後點選右上方的▷按鈕。
from aliyun.log import LogClient
from aliyun.log import *
import logging,json,re
from datetime import datetime
logger = logging.getLogger()
defdatetime_to_timestamp(date_string, date_format="%Y-%m-%d %H:%M:%S"):
dt = datetime.strptime(date_string, date_format)
returnint(dt.timestamp())
defquery_bill_logs(json_data):
accessKeyId = ""#填寫accessKeyId
accessKey = ""#填寫accessKey
endpoint = "cn-wulanchabu.log.aliyuncs.com"#填寫賬單資料所在的endpoint
project = "bill-analysis-xxxx"#填寫賬單資料所在的project
logstore = "aliyun_bill"#填寫賬單資料所在的logstore
client = LogClient(endpoint, accessKeyId, accessKey)
query = json_data["query"]
# from_time和to_time表示查詢日誌的時間範圍,UNIX時間戳格式。
from_time = datetime_to_timestamp(json_data["from_time"])
to_time = datetime_to_timestamp(json_data["to_time"])
# query引數用於設定查詢語句;line引數用於控制返回日誌條數,line取值為3。
request = GetLogsRequest(project, logstore, from_time, to_time, '', query=query, line=3, offset=0, reverse=False)
response = client.get_logs(request)
# 查詢結果。
log_res_list=[]
for log in response.get_logs():
log_res = log.contents.items()
log_res_list.append(dict(log_res))
return log_res_list
defmain(event,context):
data = event.decode('utf-8')
logger.info("收到的資料:{}".format(data))
data=json.loads(data)["sql"]
match = re.search(r'\{.*?\}', data,re.DOTALL)
ifmatch:
json_res = json.loads(match.group(0))
# 查詢日誌
log_res=str(query_bill_logs(json_res))
log_res = json.dumps(log_res, ensure_ascii=False, indent=4)
logger.info("查詢到的資料:{}".format(log_res))
return log_res
else:
logger.info("未匹配到json")
return"無法匹配到SQL"

在TERMINAL中執行下面的語句,透過控制檯Web IDE終端安裝依賴。完成後點選“部署程式碼”按鈕,完成該函式的部署。
pip install -U aliyun-log-python-sdk -t .

部署完成後,需要測試一下,驗證是否可以正常查詢。在選單欄中點選“測試”,填寫測試名稱和傳參(傳參可以參考下面的程式碼),完成後點選“測試”按鈕。
{
"sql": "{\"from_time\":\"2025-01-01 00:00:00\",\"to_time\":\"2025-02-01 00:00:00\",\"query\":\"*|select round(coalesce(sum(PretaxAmount),0),3) from splititem_bill_transform\"}"
}

如下圖所示,即為執行成功。

大模型缺乏私有知識,根據使用者輸入從外部資訊源檢索相關資訊,然後將檢索到的內容整合到使用者輸入中,從而幫助大模型生成更準確的回答。將賬單相關資料引入專有知識庫後,大模型就能準確回答賬單方面的問題。
點選https://bailian.console.aliyun.com/?tab=app#/data-center此連結,
在左側選單欄中選擇“應用資料”,選擇“非結構化資料”,點選類目管理旁的“+”。

填寫“目錄名稱”,完成後點選“確定”按鈕。

選擇剛建立的類目,點選右上角的“匯入資料”按鈕。

匯入方式選擇“本地上傳”,將下面的檔案《分賬賬單欄位.xlsx》傳入到百鍊中,完成後點選確認。
《分賬賬單欄位.xlsx》為分賬賬單各個欄位的名稱及解釋,便於百鍊生成SQL語句。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

資料匯入完成後,如下圖所示:

在左側選單欄中選擇“知識庫”,點選右上角的“+ 建立知識庫”。

填寫“知識庫名稱”,資料型別選擇“非結構化資料”,其他配置保持預設,完成後點選“下一步”按鈕。

選擇資料選擇“選擇類目”,類目選擇剛建立的類目“阿里雲賬單機器人”,完成後點選“下一步”按鈕。

其他配置保持預設,完成後點選“匯入完成”按鈕。

知識庫建立完成後,如下圖所示:

樣例庫功能作為百鍊的FewShot能力,通過錄入使用者輸入(Query)和期望的模型回覆(Answer)作為樣例資訊源,在模型呼叫時根據使用者輸入,檢索召回相關樣例資訊,以此作為輸出參考,從而提高大模型的回答準確性,適用於問答等場景。
在左側選單欄中選擇“元件管理”,在元件管理介面的頂部選單中選擇“樣例庫”,點選“樣例庫管理”旁的“+”。

填寫“樣例庫名稱”,匯入方式選擇“手動輸入”,將下表資料填入到“樣例示例”,完成後點選“確定”按鈕。


樣例庫配置完成後,如下圖所示:

大模型具備強大的語言能力,但仍有一定的侷限性,例如難以處理私有領域問題、獲取最新資訊、遵循固定流程,以及自動規劃複雜專案。為此,阿里雲百鍊推出了三種大模型應用:智慧體、工作流與智慧體編排,增加了知識庫檢索、網際網路搜尋、工作流設計及智慧體協作等功能,顯著擴充套件了大模型的應用範圍。下表說明三種大模型應用的簡介及示例場景。

生成SQL
點選https://bailian.console.aliyun.com/?tab=app#/app-center此連結,
在左側選單欄中選擇“應用管理”,在應用管理介面的右上角點選“+ 新增應用”按鈕。

選擇“智慧體應用”,點選“立即建立 ↗”按鈕。

選擇“通義千問-Max”,提示詞填“需要從使用者的問題中梳理出要查詢哪些資訊,輸出要查詢資料的SQL。如果無法生成要查詢的SQL則回覆“抱歉,您的問題暫時無法回覆,請聯絡工程師””,選擇剛建立的知識庫和樣例庫。完成後在右側輸入問題“查詢2月阿里雲花費金額”,點擊發送按鈕,查看回答是否如下圖所示。若與下圖答覆一致,則點選右上角的“釋出”按鈕。

釋出完成後,會在剛建立的智慧體應右上角顯示“已釋出”。注意:未釋出會導致下面的流程出現問題!

查詢賬單
在應用管理介面的右上角點選“+ 新增應用”。

選擇“工作流應用”,點選“建立任務型工作流 ↗”按鈕。

按下圖所示進行配置,引用上文建立的FC函式查詢賬單資料,結合使用者的問題和查到的賬單資料,透過大模型組織答案。

完成配置後,點選“測試”按鈕,輸入query:“查詢1月阿里雲花費金額”,sql:“{"from_time":"2025-01-01 00:00:00","to_time":"2025-02-01 00:00:00","query":"*|select round(coalesce(sum(PretaxAmount),0),3) from splititem_bill_transform"}”。完成後點選“執行”按鈕。

若結果如下圖所示,則說明配置成功。

更改應用名稱,點選右上角的“釋出”按鈕。

釋出完成後如下圖所示:

賬單機器人
在應用管理介面的右上角點選“+ 新增應用”。

選擇“智慧體編排應用”,點選“建立智慧體編排應用↗”按鈕。

按下圖所示進行配置,將剛建立的兩個應用串聯起來,先根據使用者的問題生成查詢SQL,再執行SQL獲取賬單資料,最終根據使用者的問題組織答案。

注意:查詢賬單工作流配置,要輸入兩個變數,一個是使用者的問題,一個是智慧體應用輸出的SQL。

完成後點選“測試”按鈕,輸入query:“查詢2月阿里雲花費金額”,點選“執行”按鈕。

若執行結果如下圖所示,則說明執行成功。成功後點擊“釋出”按鈕。

釋出完成後如下圖所示:

點選https://bailian.console.aliyun.com/?tab=app#/api-key此連結,在左側選單欄中選擇“API-Key”,點選API Key管理介面右上角的“建立我的API-KEY”按鈕。

選擇應用所在的歸屬業務空間,完成後點選“確定”按鈕。

API-Key建立完成後,如下圖所示:

點選https://open.feishu.cn/app此連結,在企業自建應用介面,點選“建立企業自建應用”按鈕。

填寫應用名稱和應用描述,完成後點選“建立”按鈕。

在左側選單欄中選擇“新增應用能力”,找到機器人,點選“+新增”按鈕。

在左側選單欄中選擇“事件與回撥”,選擇“加密策略”,複製Encrypt Key和Verification Token,用於下文配置計算巢AppFlow。

在左側選單欄中選擇“事件與回撥”,在事件配置介面,訂閱方式選擇“將事件傳送至 開發者伺服器”,填寫請求地址(這個請求地址在下文計算巢AppFlow配置中),完成後點選“儲存”按鈕。點選“新增事件”按鈕,新增“使用者進入與機器人的會話”、“接收訊息”、“機器人自定義選單事件”這三個事件。

在回撥配置介面,像事件配置一樣,配置訂閱方式,並新增“卡片回傳互動”回撥。

計算巢AppFlow配置完成後會得到IP白名單,將這些IP配置到飛書應用的IP白名單中。

計算巢AppFlow透過介面化快速編排的方式,組合多個聯結器的觸發事件和執行動作,從而連線多個應用系統,實現業務流程自動化。使用計算巢AppFlow對接飛書和百鍊,無需使用者寫程式碼實現,而且計算巢AppFlow是免費的。
點選
https://appflow.console.aliyun.com/vendor/cnhangzhou/flowTemplate/manage
此連結,在左側選單欄中選擇“模板中心”,找到“飛書自建應用 X 阿里雲百鍊”。

點選“立即使用”按鈕。

點選“新增新憑證”建立飛書自建應用機器人憑證。

填寫“憑證名稱”、“App ID”、“App Secret”、“AES Key”、“token”,這些在飛書應用中可以找到。底下的“IP白名單”新增到飛書應用白名單中。完成後點選“確定”按鈕。

點選“新增新憑證”建立阿里雲百鍊憑證。

填寫“憑證名稱”和“API-KEY”(請見上文建立API-Key)。完成後點選“確定”按鈕,再點選“下一步”按鈕。

填寫“應用Id”(名為“賬單機器人”的百鍊智慧體編排應用Id ),完成後點選“下一步”按鈕。

填寫“連線流名稱”和“連線流描述”,完成後點選“下一步”按鈕。

這個WebhookUrl地址,即為上文飛書應用配置事件與回撥的請求地址。點選“釋出”按鈕。

在飛書App左側選單欄中選擇“工作臺”,點選右上角“⚙設定”。

在我的工作臺中,點選右上角的“新增應用”按鈕,將剛建立的“阿里雲賬單機器人”新增進來。

點選進入阿里雲賬單機器人。

傳送“查詢1月阿里雲花費金額”,若機器人回答如下圖所示,說明配置成功了。

至此,阿里雲賬單機器人配置完成。此外,藉助AI技術的智慧分析能力,機器人可進一步挖掘賬單資料價值,最佳化資源配置,助力企業降本增效,適應數字化轉型需求。
如有相關問題,請在文章後面給小編留言,小編安排作者第一時間和您聯絡,為您答疑解惑。
推薦閱讀



推薦影片