在 第一部分我們通過定義願景、使用案例和成功標準,為我們的 AI 代理人奠定了基礎。現在,是時候將這個願景實現。在第二部分中,我們將逐步介紹構建最低可行產品 (MVP) AI 代理程式的過程,該程序可幫助用戶根據相關性、成本和潛在的投資報酬率決定哪些行業會議值得參加。
讓我們直接深入了解構建。
1.它會如何工作?
在構建任何功能之前,我們需要一個堅實的開發基礎。這包括選擇正確的工具、配置我們的環境,以及設置可實現快速迭代的工作流程。
現在,設計怎麼樣?以下是從輸入到預期輸出的整體工作流程:

我們將每個步驟分為個別的模塊,以防因某種原因我們決定我們想改變事情。該架構實現了靈活性,並允許系統的不同部分(例如內容檢索或投資回報(ROI)評分)獨立進化,而不會破壞系統的其他部分。
或者,我們希望這樣!
您需要什麼:
取得您的端點
為了我們的目的,我們將使用具有 OpenAI API 兼容性的 GMI 託管 LLM 端點,但您可以使用任何具有類似配置的端點執行此操作。在我們的情況下,只需轉到設置 → 添加「模型提供商」→ 添加與 OpenAI API 兼容。

使用聊天流程創建 Dify 項目
前往 https://cloud.dify.ai/apps,確保您已登錄,然後您可以開始創建一個項目。為了我們的目的,我們將使用聊天流程。

二.資料輸入
我們有我們的流程,現在我們組裝每個單獨的模塊。首先,讓我們看看哪些將被視為輸入,因為正如我們所知:垃圾進入 = 垃圾出!
我們的 AI 代理人需要找出哪些行業活動值得將我們的團隊發送到,因此我們將需要為其提供一種方法,以便基礎 LLM 處理的格式來搜索、提取和彙總該信息。
是時候建造了。
添加輸入參數:

透過 API 搜尋


我們將在搜索結果上添加一個迭代器,以了解源上下文。這個步驟很重要,因為搜索引擎會根據相關性排序的許多結果。事件網站和聚合器往往是頂級結果,迭代器的工作是提取有關這些事件的詳細信息。
這就是火焰火花進行抓取的地方。

加入 GMI 法學碩士
使用者提示:
**Instructions:**
You are provided with Markdown content containing information about one or more events. Your task is to extract the event details and return them in a list of JSON objects. Each JSON object should represent a single event and conform to the following schema:
```json
{
"title": "string",
"start_date": "string",
"location": "string",
"topic/focus": "string",
"audience": "string",
"summary": "string"
}
```
Important Considerations:
Strict Adherence to Schema: Ensure that the output is a valid JSON array containing JSON objects that strictly adhere to the provided schema. Do not include any extra text or explanations outside the JSON array.
Handle Missing Information: If the Markdown content does not provide information for a particular field in the JSON schema, set the value of that field to "N/A".
Multiple Events: If the Markdown describes multiple events, return a JSON array containing one JSON object for each event.
Markdown Variations: Be prepared to handle variations in how event information might be presented in the Markdown. Look for keywords like "Date:", "Time:", "Location:", "Topic:", "Audience:", "Summary:", etc., but also be able to infer information from surrounding text.
Data Extraction: Extract the most relevant information for each field. For example, for the "time" field, extract the start date of the event in format of YYYY-MM-DD. For the "summary" field, provide a concise summary of the event.
JSON Output Only: The only output you should provide is the JSON array. Do not include any introductory or concluding remarks.
Markdown Content:
<Scrape text>

此時,您需要將 LLM 輸出解析為 JSON 格式。 通過轉換為 JSON(結構化格式),這使下游步驟可以輕鬆準確地處理結果。

這是我們使用的代碼:
import json
import re
def main(arg1: str) -> dict:
json_blocks = re.findall(r'(\[\s*\{.*?\}\s*\])', arg1, re.DOTALL)
all_events: List[dict] = []
for block in json_blocks:
try:
parsed_str = block.encode('utf-8').decode('unicode_escape')
parsed_json = json.loads(parsed_str)
# If the parsed JSON is a list, extend the result
if isinstance(parsed_json, list):
all_events.extend(parsed_json)
# If it's a single object, append it
elif isinstance(parsed_json, dict):
all_events.append(parsed_json)
except json.JSONDecodeError:
continue
return {
"events": all_events
}
接下來是什麼?好吧,我們現在有輸入數據,但在 AI 代理程序開始處理之前,需要清理和排序它。因此,現在是時候從不同搜索結果彙總結構化事件,刪除重複和按日期排序了。

這是我們使用的代碼:
import json
from datetime import datetime
def main(arg1: list) -> dict:
unique_events = {event["title"]: event for event in arg1}.values()
def sort_key(event):
try:
return datetime.strptime(event["start_date"], "%Y-%m-%d")
except ValueError:
return datetime.max # Assign max date to push invalid dates to the end
sorted_events = sorted(unique_events, key=sort_key)
sorted_events = sorted_events
return {
"events": sorted_events,
}
這就是數據輸入步驟!到目前為止,我們已經創建了一個工作流程模式:
- 使用火焰收集數據
- 為該數據添加了上下文
- 將數據解析為可用的格式
- 彙總、刪除重複和排序最終解析的資料
接下來,是時候教我們的代理人在這些數據中搜索我們希望它做的事情了。
三.搜尋和使用資料
現在,我們已經構建了一個簡單的模式(撰寫網絡查詢 → 網絡搜索 → 使用 LLM 解析輸出),我們可以利用它在確定 ROI 時搜索兩個關鍵因素: 機票價格和酒店價格
注意:為了更準確/高級搜索(例如,帶折扣的股票價格),我們可以擴展此步驟,詢問專門為此目的構建的單獨代理商。

現在,我們彙總結果和輸出。

4.測試與版序
沒有驗證,任何 MVP 都不會完成。我們執行了多輪測試,以確保代理商提供價值。
驗證資料準確性
我們檢查了:
- 正確的事件是否被提取?
- 成本數據準確合理嗎?
- 不相關的事件是否被過濾掉?
用戶反饋和細化
我們與內部利益相關者分享 MVP,以及早收集反饋。基於此,我們:
- 提高摘要的清晰度
- 調整投資報酬率評分公式
- 針對利基主題的增強過濾
效能最佳化
我們還:
- 通過緩存結果降低抓取延遲
- 通過更好的提示提高 LLM 解析可靠性
- 新增臨界值以最大限度地減少假陽性
5.部署與下一步
最後的階段是使 MVP 進入可用的狀態,進行更廣泛的測試。
託管注意事項
我們測試了兩種部署策略:
- 本機碼頭部署 用於快速迭代和隔離測試
- 雲端部署 關於可擴展性和遠端存取的 GMI 雲端基礎架構
擴展 MVP
隨著核心工作,未來的版序可以:
- 新增更多活動資料來源 (RSS 摘要、精選電子報、LinkedIn 活動)
- 使用微調的 ML 模型或嵌入來改善投資報酬率模型
- 整合即時航班和酒店 API 來擴大成本估算
未來的增強功能
展望未來,潛在的下一個功能包括:
- 根據個人目標或偏好的個人化賽事得分
- 以團隊為基礎的建議(例如,「這是否值得發送我們的 BD 團隊?」)
- 擴展到其他領域,例如產品發布或網絡聚會
最後的想法
這個 AI 代理起初是一個簡單的想法 —— 幫助忙碌的專業人士決定哪些活動值得參加。通過方法開發、反覆測試和正確的工具,我們通過精簡、靈活的 MVP 將這個想法實現。
在第 3 部分中,我們將探討如何將此 MVP 發展為可生產的系統,以最佳化效能,並將其更深入整合到業務決策工作流程中。
在此之前,快速建置,保持好奇心,並讓 AI 完成重大工作。
順便說一句,你看過我們的 構建 AI 驅動的語音翻譯器指南?它只使用開源工具!
構建無限制的 AI!


