Skip to main content
Open In ColabOpen on GitHub

Robocorp 工具包

本笔记本介绍如何开始使用 Robocorp Action Server 操作工具包和 LangChain。

Robocorp 是为 AI 代理、助手和协程扩展自定义功能的最简便方式。

安装

首先,请参阅 Robocorp 快速入门,了解如何设置 Action Server 并创建您的操作。

在您的 LangChain 应用程序中,安装 langchain-robocorp 包:

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

当您按照上述快速入门创建新的 Action Server 时。

它将创建一个包含文件的目录,其中包括 action.py

我们可以添加 Python 函数作为操作,如此处所示。

让我们向 action.py 添加一个虚拟函数。

@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

我们可以看到:

Found new action: get_weather_forecast

通过在运行于 http://localhost:8080 的服务器上进行本地测试,并使用 UI 来运行该函数。

环境设置

您可以选择设置以下环境变量:

  • LANGSMITH_TRACING=true:启用 LangSmith 日志运行追踪,该追踪也可绑定到相应的 Action Server 操作运行日志。请参阅 LangSmith 文档 了解更多。

使用

我们已在上方启动了本地操作服务器,运行于 http://localhost:8080

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

# Initialize LLM chat model
llm = ChatOpenAI(model="gpt-4", temperature=0)

# Initialize Action Server Toolkit
toolkit = ActionServerToolkit(url="http://localhost:8080", report_trace=True)
tools = toolkit.get_tools()

# Initialize 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?")


> Entering new AgentExecutor chain...

Invoking: `robocorp_action_server_get_weather_forecast` with `{'city': 'San Francisco', 'days': 1, 'scale': 'fahrenheit'}`


"75F and sunny :)"The current weather today in San Francisco is 75F and sunny.

> Finished chain.
{'input': 'What is the current weather today in San Francisco in fahrenheit?',
'output': 'The current weather today in San Francisco is 75F and sunny.'}

单输入工具

默认情况下,toolkit.get_tools() 会将操作作为结构化工具返回。

要返回单个输入工具,请传入一个用于处理输入的聊天模型。

# Initialize single input Action Server Toolkit
toolkit = ActionServerToolkit(url="http://localhost:8080")
tools = toolkit.get_tools(llm=llm)