轻松扩展AI能力:使用Robocorp工具包和LangChain实现自定义操作

0 阅读3分钟
# 引言

在当今快速发展的技术世界中,人工智能(AI)正在以多种方式改变我们的生活。为了充分发挥AI代理、助手和协作工具的潜力,我们可以使用Robocorp工具包来实现自定义操作。本文将逐步介绍如何结合Robocorp工具包与LangChain来增强AI的能力。

# 主要内容

## 安装

首先,我们需要了解如何设置Robocorp的Action Server并创建自定义Action。您可以参考[Robocorp Quickstart](https://robocorp.com/docs/development-guide/quick-start)获取详细的安装步骤。接下来,在您的LangChain应用中安装`langchain-robocorp`包:

```bash
# Install package
%pip install --upgrade --quiet langchain-robocorp

当您根据上述快速入门创建新的Action Server时,它会生成一个包含action.py文件的目录。您可以在这个文件中添加Python函数作为操作。

添加自定义操作

例如,让我们在action.py中添加一个简单的函数来获取天气预报:

from langchain_robocorp import action

@action
def get_weather_forecast(city: str, days: int, scale: str = "celsius") -> str:
    """
    Returns weather conditions forecast for a given city.

    Args:
        city (str): Target city to get the weather conditions for
        days: How many day forecast to return
        scale (str): Temperature scale to use, should be one of "celsius" or "fahrenheit"

    Returns:
        str: The requested weather conditions forecast
    """
    return "75F and sunny :)"

启动服务器:

action-server start

您会看到输出中显示找到新的操作:get_weather_forecast

本地测试

在浏览器中访问http://localhost:8080来测试这个函数。您可以使用UI来执行函数。

环境设置

选项地,您可以设置以下环境变量:

  • LANGCHAIN_TRACING_V2=true:启用LangSmith日志跟踪。

使用示例

我们已经启动了本地的Action Server,现在可以通过LangChain执行操作:

from langchain.agents import AgentExecutor, OpenAIFunctionsAgent
from langchain_core.messages import SystemMessage
from langchain_openai import ChatOpenAI
from langchain_robocorp import ActionServerToolkit

# 初始化LLM聊天模型
llm = ChatOpenAI(model="gpt-4", temperature=0)

# 初始化Action Server工具包
toolkit = ActionServerToolkit(url="http://localhost:8080", report_trace=True)  # 使用API代理服务提高访问稳定性
tools = toolkit.get_tools()

# 初始化Agent
system_message = SystemMessage(content="You are a helpful assistant")
prompt = OpenAIFunctionsAgent.create_prompt(system_message)
agent = OpenAIFunctionsAgent(llm=llm, prompt=prompt, tools=tools)

executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

executor.invoke("What is the current weather today in San Francisco in fahrenheit?")

该代码将请求获取旧金山的天气预报,并返回“75F and sunny :)”。

常见问题和解决方案

  1. 无法启动Action Server:确保您已经正确安装了所有必要的软件包,并且使用了正确的命令。
  2. API访问问题:如果您所在的地区对API访问有限制,可以考虑使用API代理服务。

总结和进一步学习资源

通过结合使用Robocorp工具包和LangChain,我们能够轻松创建强大的自定义操作,扩展AI代理的能力。为了进一步学习,您可以参考以下资源:

参考资料

  1. Robocorp Quickstart
  2. LangChain Documentation
  3. API代理服务

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

---END---