OpenAI Agents

OpenAI Agents 是一个 Python 框架,用于构建轻量级、易于使用且抽象非常少的智能体 AI 应用程序。它是实验性框架 Swarm 的生产级升级。

入门

要开始使用 OpenAI Agents,请按照以下步骤操作

  • 安装包
pip install openai-agents
  • 设置您的 OpenAI API 密钥
export OPENAI_API_KEY="<YOUR_KEY>"

工作原理

Agents SDK 包含一组非常小的基本元素

  • Agents,即配备指令和工具的 LLM
  • Handoffs,允许智能体将特定任务委托给其他智能体
  • Guardrails,用于验证智能体的输入

与 Python 结合使用,这些构建块可以轻松创建具有工具-智能体交互的实际应用程序,并且学习曲线极低。此外,SDK 还包含跟踪功能,可帮助您调试、评估和微调智能体工作流程。

创建您的第一个 Agents

这里有三个 Agents 的基本示例

  • 分类 Agent:作为初始联系点。它分析用户的问题并决定是否将其路由到专门的 Agent。
  • 数学导师:专门帮助解决数学相关问题的 Agent。
  • 历史导师:专注于历史主题的 Agent。
from agents import Agent, Runner


math_tutor_agent = Agent(
    name="Math Tutor",
    handoff_description="Specialist agent for math questions",
    instructions="You provide help with math problems. Explain your reasoning at each step and include examples",
)

history_tutor_agent = Agent(
    name="History Tutor",
    handoff_description="Specialist agent for historical questions",
    instructions="You provide assistance with historical queries. Explain important events and context clearly.",
)

triage_agent = Agent(
    name="Triage Agent",
    instructions="You determine which agent to use based on the user's homework question",
    handoffs=[history_tutor_agent, math_tutor_agent],
)

# Run the interaction
result = Runner.run_sync(triage_agent, "I want some help with WW1.")
print(result.final_output)

与 Qdrant 集成

您可以连接 Agent 以从 Qdrant 集合中检索或将数据摄取到其中。从而构建您的知识库。以下是如何启用 Agent 从 Qdrant 中检索信息。

假设您使用 "text-embedding-3-small" 模型创建了一个 Qdrant 集合。有效载荷结构包含一个用于知识存储的 text 字段。

import qdrant_client
from openai import OpenAI
from agents import Agent, function_tool

# Initialize clients
openai_client = OpenAI()
qdrant = qdrant_client.QdrantClient(host="localhost")

# Configuration
EMBEDDING_MODEL = "text-embedding-3-small"
COLLECTION_NAME = "help_center"
LIMIT = 5
SCORE_THRESHOLD = 0.7

@function_tool
def query_qdrant(query: str) -> str:
    """Retrieve semantically relevant content from Qdrant.

    Args:
        query: The query to search.
    """
    embedded_query = openai_client.embeddings.create(
        input=query,
        model=EMBEDDING_MODEL,
    ).data[0].embedding

    results = qdrant.query_points(
        collection_name=COLLECTION_NAME,
        query=embedded_query,
        limit=LIMIT,
        score_threshold=SCORE_THRESHOLD,
    ).points

    if results:
        return "\n".join([point.payload["text"] for point in results])
    else:
        return "No results found."

qdrant_agent = Agent(
    name="Qdrant searcher",
    handoff_description="Specialist agent for retrieving info from a Qdrant collection",
    instructions="You help find answers for user queries using Qdrant. Do not make up any info on your own.",
    tools=[query_qdrant],  
)

我们的 qdrant_agent 现在可以在认为必要时查询 Qdrant 集合,以回答用户查询。

延伸阅读

此页面有用吗?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 您可以在 GitHub 上编辑此页面,或者创建一个 GitHub issue。