
如何快速實(shí)現(xiàn)REST API集成以優(yōu)化業(yè)務(wù)流程
(1)輸入工具名稱,如:阿里云工商信息查詢…..(隨你自己取名,但一定要取一個(gè)名字)
(2)在鑒權(quán)方法那里填入appcode。點(diǎn)擊鑒權(quán)方法的下拉框,鑒權(quán)類型選擇“api key”.
健,填寫:
Authorization
值,填寫:你復(fù)制的那個(gè)appcode。
整體如下圖所示:
點(diǎn)擊保存。
(3)編寫工具swagger格式的openapi代碼。
我給大家提供我自己寫的swagger-openapi代碼示例:
{
"openapi": "3.1.0",
"info": {
"title": "天眼查-精準(zhǔn)查詢工商信息",
"description": "天眼查-精準(zhǔn)查詢工商信息",
"version": "1.0.0"
},
"tags": [
],
"paths": {
"/getCompanyBaseInfo/{CompanyNameOrCreditNo}/": {
"get": {
"operationId": "CompanyNameOrCreditNo",
"summary": "天眼查-精準(zhǔn)查詢工商信息",
"deprecated": true,
"description": "企業(yè)全稱或者全國(guó)統(tǒng)一信用代碼",
"tags": [
],
"parameters": [
{
"name": "CompanyNameOrCreditNo",
"in": "path",
"description": "企業(yè)全稱或者全國(guó)統(tǒng)一信用代碼",
"required": true,
"example": "安徽建工集團(tuán)股份有限公司",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1101": {
"description": "輸入的名稱不合法",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1102": {
"description": "請(qǐng)求超時(shí)",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1103": {
"description": "服務(wù)器異常",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1104": {
"description": "無法匹配到傳入的企業(yè)全稱",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1105": {
"description": "系統(tǒng)繁忙",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
}
},
"security": [
]
}
}
},
"components": {
"schemas": {
},
"securitySchemes": {
}
},
"servers": [
{
"url": "https://api.81api.com"
}
]
}
復(fù)制這段代碼到指定位置即可。如果你有一定的編碼能力,可自行優(yōu)化。
(小聲BB:其實(shí)我寫的示例代碼已經(jīng)夠用了)
代碼寫好后,點(diǎn)擊“保存”。
到這里,恭喜你,dify中構(gòu)建一個(gè)基于阿里云的工商信息查詢工具,就已經(jīng)實(shí)現(xiàn)了。
實(shí)現(xiàn)歸實(shí)現(xiàn),是騾子是馬,得拉出來溜溜,看看到底對(duì)不對(duì),能不能跑起來最重要。那么你就需要繼續(xù)往下看。
我們實(shí)操一次,用dify的workflow快速構(gòu)建一個(gè)基于工商信息查詢工具的工作流出來,并運(yùn)行這個(gè)工作流,實(shí)現(xiàn):輸入一個(gè)企業(yè)名稱,查詢?cè)撈髽I(yè)的工商信息結(jié)果。
假設(shè):
我們輸入一個(gè)企業(yè)名稱,要求工作流輸出這個(gè)企業(yè)的統(tǒng)一社會(huì)信用代碼和企業(yè)名稱。
業(yè)務(wù)分析:
首先我們要分析一下我們的工作流實(shí)現(xiàn)邏輯。這個(gè)工具需要傳入一個(gè)具體的企業(yè)名稱,那么就意味著我們需要設(shè)定一個(gè)輸入字段,接收這個(gè)字段,并傳給工商信息數(shù)據(jù)去查詢,然后將查詢出來的結(jié)果做一個(gè)簡(jiǎn)單的json字段解析,最后展示出企業(yè)名稱和該企業(yè)的統(tǒng)一社會(huì)信用代碼。
(1)OK。說干就干,在“開始”組件中,建立一個(gè)字段“name”,如下圖所示:
(2)“開始”組件之后要拉出一個(gè)新的節(jié)點(diǎn),這個(gè)節(jié)點(diǎn),我們就選擇剛創(chuàng)建好的工具節(jié)點(diǎn)。
工具節(jié)點(diǎn),我們要設(shè)置一個(gè)輸入變量,選擇“開始”組件中的“name”即可。如上圖所示。
(3)工具節(jié)點(diǎn)之后再拉出一個(gè)“代碼執(zhí)行”節(jié)點(diǎn),該節(jié)點(diǎn)用于解析阿里云接口返回的json數(shù)據(jù)內(nèi)容,因?yàn)槲覀円崛〗y(tǒng)一社會(huì)信用代碼,所以我們需要通過代碼腳本提取出統(tǒng)一社會(huì)信用代碼這個(gè)參數(shù)。
(3.1)將工具節(jié)點(diǎn)的輸出變量,設(shè)置為代碼執(zhí)行局節(jié)點(diǎn)的輸入變量。
是的,你沒看錯(cuò),因?yàn)楣ぞ吖?jié)點(diǎn)的輸出,其實(shí)就是代碼節(jié)點(diǎn)的輸入,你得設(shè)置一下,不然人家不知道輸入是什么,懂了么?
我知道你是懶人,懶得手動(dòng)拼寫這個(gè)參數(shù)名,所以,你還是直接復(fù)制吧。
http_response
(3.2)寫入Python代碼,用于解析工具傳回的json代碼。代碼示例如下:
def main(http_response: str) -> dict:
import json
try:
# 嘗試解析JSON
data = json.loads(http_response)
# 嘗試提取統(tǒng)一社會(huì)信用代碼
register_no = data['data']['registerData'].get('creditNo', 'creditNo not found')
# 嘗試提取公司名稱
company_name = data['data'].get('name', 'Company Name not found')
# 構(gòu)建結(jié)果字典并返回
return {
'register_no': register_no,
'company_name': company_name
}
except json.JSONDecodeError:
# 如果JSON解析失敗,返回錯(cuò)誤信息字典
return {'error': "Failed to decode JSON"}
except KeyError as e:
# 如果缺少某個(gè)鍵,返回錯(cuò)誤信息字典
return {'error': f"Missing key in JSON data: {e}"}
如圖所示,你參考下,別弄錯(cuò)了哦。
(3.3)設(shè)置代碼節(jié)點(diǎn)的輸出變量,用于最終結(jié)果展示。
直接參考吧,懶人請(qǐng)直接復(fù)制下面的吧:
這個(gè)參數(shù)指社會(huì)統(tǒng)一信用代碼的字段名。
register_no
這個(gè)參數(shù)指企業(yè)全稱的字段名。
company_name
(4)代碼執(zhí)行節(jié)點(diǎn)之后再拉出一個(gè)模型轉(zhuǎn)換節(jié)點(diǎn)。如下圖所示:
解釋一下這個(gè)節(jié)點(diǎn)為什么是這樣:
兩個(gè)輸入字段名是不是很熟悉,就是你剛填寫的,這兩個(gè)字段作為模版節(jié)點(diǎn)的輸入變量,模板節(jié)點(diǎn)接收到這兩個(gè)變量之后,才能在模板代碼中引用展示。
在模板的代碼節(jié)點(diǎn)中,你是不是一下子就感覺自己懂了,錯(cuò),你沒懂,jinjia2格式的代碼看起來就像是正常的文檔一樣,其實(shí)它屬于模板語(yǔ)法,變量需要通過兩個(gè)花括號(hào)標(biāo)記。
你之所以覺得它簡(jiǎn)單,是因?yàn)槲覀儽敬问纠龥]有那么多額外的要求,所以不需要復(fù)雜的構(gòu)造。
公司名稱:{{ company_name }}
統(tǒng)一社會(huì)信用代碼:{{ register_no }}
(5)最后拉出一個(gè)“結(jié)束”節(jié)點(diǎn)。將模板節(jié)點(diǎn)的輸出,作為“結(jié)束”節(jié)點(diǎn)的輸入。展示最終效果。到這里,這個(gè)簡(jiǎn)單但完整的工作量就算構(gòu)建成功了,如下圖所示:
到這里,恭喜你,你可以去調(diào)試,自己跑一遍整體工作流了。以下是我又跑了一遍的結(jié)果:
本文章轉(zhuǎn)載微信公眾號(hào)@提示日記
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)