如何构建 AI 代理 — 第 2 部分:构建 MVP

如何使用 GMI Cloud 构建 AI 代理系列的第 2 部分

May 12, 2025

Why managing AI risk presents new challenges

Aliquet morbi justo auctor cursus auctor aliquam. Neque elit blandit et quis tortor vel ut lectus morbi. Amet mus nunc rhoncus sit sagittis pellentesque eleifend lobortis commodo vestibulum hendrerit proin varius lorem ultrices quam velit sed consequat duis. Lectus condimentum maecenas adipiscing massa neque erat porttitor in adipiscing aliquam auctor aliquam eu phasellus egestas lectus hendrerit sit malesuada tincidunt quisque volutpat aliquet vitae lorem odio feugiat lectus sem purus.

  • Lorem ipsum dolor sit amet consectetur lobortis pellentesque sit ullamcorpe.
  • Mauris aliquet faucibus iaculis vitae ullamco consectetur praesent luctus.
  • Posuere enim mi pharetra neque proin condimentum maecenas adipiscing.
  • Posuere enim mi pharetra neque proin nibh dolor amet vitae feugiat.

The difficult of using AI to improve risk management

Viverra mi ut nulla eu mattis in purus. Habitant donec mauris id consectetur. Tempus consequat ornare dui tortor feugiat cursus. Pellentesque massa molestie phasellus enim lobortis pellentesque sit ullamcorper purus. Elementum ante nunc quam pulvinar. Volutpat nibh dolor amet vitae feugiat varius augue justo elit. Vitae amet curabitur in sagittis arcu montes tortor. In enim pulvinar pharetra sagittis fermentum. Ultricies non eu faucibus praesent tristique dolor tellus bibendum. Cursus bibendum nunc enim.

Id suspendisse massa mauris amet volutpat adipiscing odio eu pellentesque tristique nisi.

How to bring AI into managing risk

Mattis quisque amet pharetra nisl congue nulla orci. Nibh commodo maecenas adipiscing adipiscing. Blandit ut odio urna arcu quam eleifend donec neque. Augue nisl arcu malesuada interdum risus lectus sed. Pulvinar aliquam morbi arcu commodo. Accumsan elementum elit vitae pellentesque sit. Nibh elementum morbi feugiat amet aliquet. Ultrices duis lobortis mauris nibh pellentesque mattis est maecenas. Tellus pellentesque vivamus massa purus arcu sagittis. Viverra consectetur praesent luctus faucibus phasellus integer fermentum mattis donec.

Pros and cons of using AI to manage risks

Commodo velit viverra neque aliquet tincidunt feugiat. Amet proin cras pharetra mauris leo. In vitae mattis sit fermentum. Maecenas nullam egestas lorem tincidunt eleifend est felis tincidunt. Etiam dictum consectetur blandit tortor vitae. Eget integer tortor in mattis velit ante purus ante.

  1. Vestibulum faucibus semper vitae imperdiet at eget sed diam ullamcorper vulputate.
  2. Quam mi proin libero morbi viverra ultrices odio sem felis mattis etiam faucibus morbi.
  3. Tincidunt ac eu aliquet turpis amet morbi at hendrerit donec pharetra tellus vel nec.
  4. Sollicitudin egestas sit bibendum malesuada pulvinar sit aliquet turpis lacus ultricies.
“Lacus donec arcu amet diam vestibulum nunc nulla malesuada velit curabitur mauris tempus nunc curabitur dignig pharetra metus consequat.”
Benefits and opportunities for risk managers applying AI

Commodo velit viverra neque aliquet tincidunt feugiat. Amet proin cras pharetra mauris leo. In vitae mattis sit fermentum. Maecenas nullam egestas lorem tincidunt eleifend est felis tincidunt. Etiam dictum consectetur blandit tortor vitae. Eget integer tortor in mattis velit ante purus ante.

第 1 部分,我们通过定义愿景、用例和成功标准,为我们的人工智能代理奠定了基础。现在,是时候将这一愿景变为现实了。在第二部分中,我们将逐步介绍构建最低可行产品(MVP)人工智能代理的过程,该代理可帮助用户根据相关性、成本和潜在投资回报率决定哪些行业会议值得参加。

让我们直接进入构建。

1。它将如何运作?

在构建任何功能之前,我们需要坚实的开发基础。这包括选择正确的工具、配置我们的环境以及设置支持快速迭代的工作流程。

那么,设计呢?以下是从输入到预期输出的整体工作流程:

Workflow diagram

我们会将每个步骤分解为单独的模块,以防出于某种原因我们决定要进行调整。该框架提供了灵活性,并允许系统的不同部分(例如内容检索或投资回报率(ROI)评分)在不破坏系统其余部分的情况下独立发展。

或者我们希望如此!

你需要什么:

  • 大型语言模型 (LLM) 端点
  • Dify.ai 账户(别担心,它们是免费的!)用于管理 AI 工作流程
  • Firecrawl — 用于将网站抓取到 LLM 就绪数据中。我们将使用他们的免费套餐。

获取您的终端节点

出于我们的目的,我们将使用与 OpenAI API 兼容的 GMI 托管的 LLM 端点,但您可以使用任何具有类似配置的端点来执行此操作。在本例中,只需进入设置 → 添加 “模型提供商” → 添加兼容 OpenAI-API 即可。

使用 Chatflow 创建 Dify 项目

前往 https://cloud.dify.ai/apps,确保你已登录,然后就可以开始创建项目了。出于我们的目的,我们将使用 Chatflow。

2。数据输入

我们有了流程,现在我们组装每个单独的模块。首先,让我们来看看什么会被视为输入,因为正如我们所知:垃圾进入 = 垃圾输出!

我们的人工智能代理需要弄清楚哪些行业事件值得派遣我们的团队参加,因此我们需要为其提供一种方法,以可供底层LLM处理的格式搜索、提取和汇总这些信息。

现在是建造的时候了。

添加您的输入参数:

通过 API 进行搜索

我们将在搜索结果上添加一个迭代器以了解源上下文。这一步很重要,因为搜索引擎会提供许多按相关性排序的结果。事件网站和聚合器往往是最佳结果,迭代器的工作是提取有关这些事件的详细信息。

这就是 Firecrawl 用来刮刮的地方。

添加 GMI LLM

用户提示:

**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,
   }

这就是数据输入步骤!到目前为止,我们已经创建了一个工作流程模式:

  • 使用 firecrawl 收集数据
  • 为上述数据添加了背景信息
  • 已将数据解析为可用的格式
  • 对最终解析的数据进行聚合、去重和排序

接下来,是时候教我们的代理在这些数据中搜索我们希望它做的事情了。

3.搜索和使用数据

我们现在已经建立了一个简单的模式(撰写网络查询 → 网页搜索 → 使用 LLM 解析输出),在确定投资回报率时,我们可以利用它来搜索两个关键因素: 门票价格和酒店价格

注意:为了获得更准确/更高级的搜索(例如股票价格含折扣),我们可以扩展此步骤,查询专门为此目的而构建的单独代理

现在,我们汇总结果和输出。

4。测试和迭代

没有验证,任何 MVP 都是不完整的。我们进行了多轮测试,以确保代理创造价值。

验证数据准确性

我们检查了:

  • 撤回了正确的事件吗?
  • 成本数据准确合理吗?
  • 无关的事件是否被过滤掉了?

用户反馈和改进

我们与内部利益相关者共享了 MVP,以收集早期反馈。基于此,我们:

  • 提高了摘要的清晰度
  • 调整了投资回报率评分公式
  • 增强了对利基话题的筛选

性能优化

我们还有:

  • 通过缓存结果减少抓取延迟
  • 通过更好的提示提高了 LLM 解析的可靠性
  • 增加了阈值以最大限度地减少误报

5。部署和后续步骤

最后阶段是让 MVP 进入可用状态,以便进行更广泛的测试。

托管注意事项

我们测试了两种部署策略:

  • 本地部署 Docker 用于快速迭代和隔离测试
  • 云部署 在 GMI 云基础架构上实现可扩展性和远程访问

扩展 MVP

在核心运行后,未来的迭代可以:

  • 添加更多活动数据源(RSS 提要、精选时事通讯、LinkedIn 活动)
  • 使用微调的 ML 模型或嵌入来改进 ROI 模型
  • 通过集成实时航班和酒店 API 来扩展成本估算

未来的改进

展望未来,潜在的下一个功能包括:

  • 根据个人目标或偏好进行个性化赛事评分
  • 基于团队的建议(例如,“这值得派遣我们的 BD 团队吗?”)
  • 扩展到其他领域,例如产品发布会或社交聚会

最后的想法

这个人工智能代理最初是一个简单的想法——帮助忙碌的专业人士决定哪些活动值得参加。通过有条不紊的开发、迭代测试和正确的工具,我们通过精简、灵活的 MVP 将这一想法变为现实。

在第 3 部分中,我们将探讨如何将这个 MVP 发展为可投入生产的系统,优化性能,并将其更深入地集成到业务决策工作流程中。

在此之前,快速构建,保持好奇心,让人工智能完成繁重的工作。

顺便问一下,你看过我们的 编写 AI 驱动的语音翻译器指南?它只使用开源工具!

无限制地构建 AI!

即刻开始

试用 GMI Cloud 算力服务,即刻体验高效的 AI 应用构建。

即刻开始
14 天试用
无长期合同约束
无需部署设置
按需 GPU

低至

$ 4.39 /GPU-小时

立即开始使用
预留 GPU

低至

$ 2.50 /GPU-小时

立即开始使用