Robocorp 是扩展 AI 代理、助手和共事助手自定义功能的最便捷方式之一。本文将介绍如何使用 Robocorp Action Server 和 LangChain 开始构建自定义动作。
技术背景介绍
Robocorp 提供了一套工具,用于快速创建可以与人工智能模型交互的自定义 API 动作。通过集成 LangChain 应用,可以构建复杂的 AI 应用程序,增强 AI 的定制与执行能力。
核心原理解析
Robocorp 的 Action Server 允许用户定义一组动作,并通过 HTTP 接口公开这些动作。LangChain 提供了一种方式将这些动作集成到 AI 代理中,使其能够通过自然语言进行调用。
代码实现演示
首先,在你的 LangChain 应用中安装 langchain-robocorp
包:
# 安装包
%pip install --upgrade --quiet langchain-robocorp
创建新的 Action Server 时,会生成一个包括 action.py
的目录,您可以在 action.py
中添加自定义的 Python 函数作为动作。例如:
@action
def get_weather_forecast(city: str, days: int, scale: str = "celsius") -> str:
"""
返回指定城市的天气预报。
Args:
city (str): 查询天气的目标城市
days: 返回多少天的天气预报
scale (str): 使用的温度单位,可以是 "celsius" 或 "fahrenheit"
Returns:
str: 请求的天气预报
"""
return "75F and sunny :)"
启动服务器:
action-server start
然后,您可以通过 http://localhost:8080
测试该功能。
配置环境:
# 可选的环境变量设置
LANGCHAIN_TRACING_V2=true # 启用 LangSmith 日志追踪
使用代码如下:
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
toolkit = ActionServerToolkit(url="http://localhost:8080", report_trace=True)
tools = toolkit.get_tools()
# 初始化代理
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?")
应用场景分析
通过使用 Robocorp Action Server,您可以快速创建多种功能性动作,不仅用于获取信息,还可以实现复杂的自动化流程。配合 LangChain,您可以将这些服务无缝整合到 AI 应用程序中,提高交互智能。
实践建议
- 对于复杂的动作,可以考虑以模块化的方式进行开发,确保每个动作的功能单一且可测试。
- 在开发的过程中,使用环境变量进行功能开关的管理,可以提高应用的扩展性和调试灵活性。
- 结合 LangChain 的强大功能,确保您定义的 API 符合应用需求,并能够通过自然语言进行高效调用。
如果遇到问题欢迎在评论区交流。
—END—