智能体来了:构建用于具有结构化输出的内容审核的智能 AI Agent 智能体

智能体来了:一个专注于AI Agent开发的专业学习与交流社区!

在本教程中,我们将探索如何创建一个可以管理内容并生成结构化报告的智能 AI 智能体。我们将使用 OpenAI 的结构化输出和函数调用的新功能来构建这个高级系统。我们的目标是开发一种能够有效分析内容并提供详细、有组织的结果的人工智能。

人工智能输出的演变

OpenAI 最近推出了结构化输出功能,这改变了我们使用人工智能模型的方式。在此更新之前,开发者在使用人工智能生成的内容时面临许多挑战。响应通常只是纯文本或简单的 JSON 格式。这给开发商和企业都带来了问题。

人工智能输出缺乏结构常常导致信息不一致。开发人员必须编写复杂的代码来理解人工智能的响应,这需要花费大量时间,并且可能会导致错误。人工智能如何呈现信息也很难控制,因此很难在现有系统中使用这些输出。

这些限制使得为需要精确、结构化数据的任务构建可靠的应用程序变得尤其具有挑战性。处理法律文件、合规报告和业务分析的团队发现,他们花在处理人工智能输出上的时间比实际从中受益的时间还要多。

游戏规则改变者:结构化输出

但现在,情况发生了变化。 OpenAI 引入了一种称为“结构化输出”的东西。这意味着人工智能现在可以以更易于使用的格式为我们提供信息。想象一下,询问食谱并返回一份组织整齐的成分和步骤列表,而不仅仅是一段文本。这就是我们正在谈论的改进。对于我们的内容审核智能体来说,这确实令人兴奋。我们现在可以向人工智能询问精确格式的特定类型的信息。需要法律条款、财务数据或合规要求?人工智能可以以易于使用的结构化方式提供这些。这节省了处理和组织信息的大量时间和精力。

但这还不是全部。 OpenAI 还在其人工智能模型中添加了一种称为“函数调用”的功能。这就像让我们的人工智能智能体能够根据其处理的信息按下按钮和拉动控制杆。它不仅提供数据,还可以采取行动。

通过结合结构化输出和函数调用,我们的智能体变得异常强大。它可以处理多个信息源,做出复杂的决策,并创建高度定制的报告。这就像拥有一个超级智能的助手,不仅可以理解复杂的信息,还可以用它做一些有用的事情。这种人工智能对于需要快速审查大量内容的企业来说非常有用。它可以帮助确保内容符合某些标准、标记潜在问题,甚至提出改进建议。而且由于它运行快速且一致,因此可以将人类主持人解放出来,专注于更复杂的任务。

在本教程中,我们将逐步介绍如何构建这种人工智能智能体。我们将向您展示如何设置它、如何使用这些新功能以及如何使其满足您的特定需求。最后,您将拥有一个强大的工具,可以帮助完成各种内容审核任务。

让我们开始编码

首先,为我们的项目创建一个新目录:

mkdir structuredOutput
cd structuredOutput

接下来,让我们设置一个虚拟环境。这将帮助我们将项目依赖项与其他 Python 项目分开管理。

对于 Windows:

python -m venv venv
venv\Scripts\activate

对于 macOS 和 Linux:

python3 -m venv venv
source venv/bin/activate

激活虚拟环境后,让我们安装所需的库:

pip install pydantic openai pandas colorama python-dotenv supabase

现在,在structuredOutput目录中创建一个app.py文件。这将是我们项目的主文件。

接下来,在同一目录中创建一个.env文件。该文件将存储我们的敏感信息,例如 API 密钥。将以下占位符添加到文件中:

OPENAI_API_KEY=your_openai_api_key_here
SUPABASE_URL=your_supabase_url_here
SUPABASE_KEY=your_supabase_key_here

如果您还没有这些密钥,请不要担心。在下一部分中,我们将指导您创建 Supabase 帐户、设置表并获取必要的凭据。如果您还没有 OpenAI API 密钥,我们还将解释如何获取它。

通过以这种方式设置我们的环境,我们可以确保我们的项目井井有条,我们的依赖项得到管理,并且我们的敏感信息得到保护。当我们继续构建结构化输出智能体时,这种方法将为我们的成功奠定基础。

在接下来的部分中,我们将深入了解设置 Supabase 和 OpenAI 的细节,然后我们将开始构建智能体的核心功能。敬请关注!

设置 API 密钥

现在我们已经有了项目结构,接下来让我们获取应用程序所需的 API 密钥。

OpenAI API 密钥

要获取您的 OpenAI API 密钥:

  1. 访问您的 OpenAI 仪表板:https: //platform.openai.com/settings/organization/general
  2. 查找 API Keys 部分并创建一个新的密钥
  3. 复制此密钥并将其粘贴到OPENAI_API_KEY变量的.env文件中

苏帕贝斯简介

Supabase 是一种开源 Firebase 替代品,提供了一套用于构建可扩展且安全的应用程序的工具。它在一个包中提供 PostgreSQL 数据库、身份验证、即时 API 和实时订阅。

我们在这个项目中使用 Supabase 有几个原因:

  1. 轻松设置:Supabase 提供了一个用户友好的界面来创建和管理数据库。
  2. PostgreSQL 的强大功能:它构建在 PostgreSQL 之上,使我们能够访问强大的、功能齐全的数据库。
  3. 实时功能:Supabase 允许实时数据同步,这对于协作文档生成非常有用。
  4. 内置身份验证:虽然我们在本教程中没有使用它,但 Supabase 的身份验证系统对于将来保护您的应用程序非常有价值。
  5. 可扩展性:Supabase 旨在随着您的应用程序进行扩展,使其适合小型项目和大规模部署。

设置 Supabase

现在,让我们设置您的 Supabase 项目:

  1. 如果您还没有 Supabase 帐户,请访问https://supabase.com/dashboard/sign-up创建一个 Supabase 帐户。
  2. 登录后,单击“新建项目”并按照提示创建新项目。

  1. 创建项目后,您将进入项目仪表板。

  1. 在左侧边栏中,单击您的项目主页并向下滚动以找到 api 部分。
  2. 在这里,您将找到您的项目 URL 和 API 密钥。复制这些并将它们分别添加到SUPABASE_URLSUPABASE_KEY变量的.env文件中。

您的.env文件现在应该看起来像这样(当然,使用您的实际密钥):

OPENAI_API_KEY=sk-youropenaiapikeyhere
SUPABASE_URL=https://yourprojectid.supabase.co
SUPABASE_KEY=your.supabase.api.key.here

下一步

干得好!您现在已经为我们的项目设置了必要的帐户和 API 密钥。在下一节中,我们将深入创建 Supabase 表、选择适当的字段并为文档生成系统设置架构。这将为存储和检索人工智能智能体将使用的结构化数据奠定基础。

创建 Supabase 表

现在我们已经设置了 Supabase 项目,让我们创建一个用于存储审核数据的表。该表将成为我们结构化输出系统的支柱,使我们能够有效地存储和检索审核结果。

创建表的步骤

  1. 在 Supabase 项目仪表板中,查找侧边栏并单击“表编辑器”选项卡。
  2. 单击“创建新表”按钮。
  3. 将您的表命名为MODERATION_TABLE
  4. 暂时取消选中“启用行级安全性 (RLS)”选项。 (注意:在生产环境中,您需要设置适当的安全规则。)

设置架构

对于我们的审核项目,我们需要一个可以适应内容审核各个方面的特定模式。在 Supabase UI 中,您将看到标题为“列”的部分,其中包含“关于数据类型”和“通过电子表格导入数据”选项。在其下方,您将找到“名称”、“类型”、“默认值”和“主要”字段。

这是我们将使用的架构:

  • id (text)
  • content_id (text)
  • status (text)
  • content (text)
  • reported_to (text)
  • is_offensive (bool)
  • confidence_score (float4)
  • flagged_terms (text)
  • created_at (timestamp)
  • moderation_result (text)

使用 Supabase UI 将这些列中的每一列添加到表中。确保为每列设置正确的数据类型并将“id”列标记为主键。

添加所有列后,单击“保存”按钮以创建表。

下一步

现在我们的 Supabase 表已经建立,我们为存储 AI 审核智能体的结构化输出奠定了坚实的基础。在下一节中,我们将开始构建与此表交互的 Python 代码,包括插入新审核条目和检索现有审核条目的函数。这将构成我们审核系统数据管理功能的核心。

进入实际编码

让我们将此代码分解为几个部分,然后深入研究每个函数。我们将从前两部分开始。

导入和初始设置

让我们将此代码分解为几个部分,然后深入研究每个函数。我们将从前两部分开始。

导入和初始设置

from pydantic import BaseModel
from openai import OpenAI
import json
import re
import time
import pandas as pd
from colorama import Fore, Back, Style, init
import os
from supabase import create_client, Client
from dotenv import load_dotenv
from datetime import datetime
from typing import List

# Load environment variables from .env file
load_dotenv()

# Initialize colorama for cross-platform colored output
init(autoreset=True)

# Initialize Supabase client
url: str = os.getenv("SUPABASE_URL")
key: str = os.getenv("SUPABASE_KEY")
supabase: Client = create_client(url, key)

# Hardcoded table name
MODERATION_TABLE = "MODERATION_TABLE"

本节通过导入必要的库和初始化关键组件来设置我们的环境。我们使用 Pydantic 进行数据验证,使用 OpenAI 进行 AI 交互,使用 Supabase 进行数据库操作。 Colorama 用于彩色控制台输出,增强可读性。

数据库操作

def supabase_operation(operation, data=None, filters=None):
    query = supabase.table(MODERATION_TABLE)

    if operation == "insert":
        query = query.insert(data)
    elif operation == "select":
        query = query.select("*")
    elif operation == "update":
        query = query.update(data)
    elif operation == "delete":
        query = query.delete()
    else:
        raise ValueError("Unsupported operation")

    if filters:
        for column, operator, value in filters:
            if operator == "eq":
                query = query.eq(column, value)
            elif operator == "gt":
                query = query.gt(column, value)
            elif operator == "lt":
                query = query.lt(column, value)
            elif operator == "like":
                query = query.like(column, value)

    return query.execute()

这个函数, supabase_operation ,是一个与我们的 Supabase 数据库交互的多功能助手。它支持插入、选择、更新和删除等各种操作。让我们来分解一下:

  1. 我们首先为MODERATION_TABLE创建一个查询对象。
  2. 根据操作(插入、选择、更新或删除),我们相应地修改查询。
  3. 如果提供了过滤器,我们会将它们应用于查询。这允许更具体的数据库操作。
  4. 最后,我们执行查询并返回结果。

该函数抽象了数据库操作的复杂性,使得在其余代码中更容易对我们的审核数据执行各种操作。

数据模型和审核功能

让我们检查代码的下一部分,它定义了我们的数据模型和核心调节功能。

# Step 1: Define Pydantic Models for Structured Outputs
class ModerationResult(BaseModel):
    is_offensive: bool
    confidence_score: float
    flagged_terms: list[str]

class 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎跃春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值