赞
踩
OpenAI Tools 是一种先进的代理机制,它允许大型语言模型(LLM)在处理特定的输入或任务时,智能地选择并调用相应的工具或函数。这些工具可以是网络搜索、数据库查询、文件读取等任何可以通过编程接口(API)调用的功能。
OpenAI Tools 是针对 OpenAI大模型的一个功能,它被设计成可以智能地调用一个或多个函数,并返回用于调用这些函数的参数。在使用 OpenAI Tools 的 API 进行调用时,开发者可以描述这些函数,并让模型智能地选择输出一个 JSON 对象,其中包含调用这些函数所需的参数。OpenAI Tools 的目标是比起使用通用的文本生成或聊天 API 更可靠地返回有效和有用的函数调用。
在 OpenAI 的术语中,调用单个函数的能力被称为 "functions",而调用一个或多个函数的能力被称为 "tools"。Functions(功能)与tools(工具)的区别如下所示:
注意:在OpenAI Chat API中,函数现在被认为是一种已被弃用的旧选项,而工具是更推荐的替代选项。如果正在使用OpenAI模型创建代理,应该使用这个OpenAI Tools代理,而不是OpenAI函数代理。
OpenAI Tools API 的目标是,提供一种比通用文本完成或聊天API更可靠的方法来返回有效和有用的函数调用,这通过允许模型根据输入内容智能地选择最合适的工具来实现。使用 OpenAI Tools 的优势如下所示。
在LangChain中使用 OpenAI Tools 代理的基本步骤如下所示。
(1)初始化工具:定义一组工具,这些工具可以是网络搜索、文件读取器或其他任何API。
(2)创建代理:使用语言模型和工具创建代理,并定义一个提示模板来指导代理如何使用这些工具。
(3)运行代理:通过代理执行器(AgentExecutor)来运行代理,它可以调用代理并执行它选择的工具。
例如下面是一个使用OpenAI Tools代理的例子,展示了如何设置和运行一个代理的方法,该代理能够使用搜索工具来回答关于法国首都的问题。
实例6-1:使用OpenAI Tools代理回答关于法国首都的问题(源码路径:codes\6\OpenAITools.py)
- import os
- from langchain_openai import ChatOpenAI
- from langchain.agents import create_openai_tools_agent
- from langchain_core.prompts import ChatPromptTemplate
- from langchain.agents import AgentExecutor
- from langchain_community.tools.tavily_search import TavilySearchResults
-
- # 设置 OpenAI API 密钥
- os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
- # 初始化模型
- llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
- # 初始化搜索工具
- search_tool = TavilySearchResults(max_results=1)
- # 设置提示
- prompt = ChatPromptTemplate.from_messages(
- [
- ("system", "You are a helpful assistant. Use the search tool to find answers."),
- ("human", "{input}"),
- ]
- )
- agent = create_openai_tools_agent(llm, [search_tool], prompt)# 创建 OpenAI Tools 代理
- agent_executor = AgentExecutor(agent=agent, tools=[search_tool], verbose=True)# 初始化代理执行器
- response = agent_executor.invoke({"input": "What is the capital of France?"})# 运行代理
- print(response["output"])
在上述代码中,首先导入所需的库,并设置了 OpenAI API 密钥。然后,初始化了一个 ChatOpenAI 模型,并创建了一个 TavilySearchResults 工具,用于进行网络搜索。接下来,设置了一个简单的提示,告诉代理要使用搜索工具来查找答案。然后,使用 create_openai_tools_agent 函数创建了一个 OpenAI Tools 代理,并初始化了代理执行器。最后,使用代理执行器的 invoke 方法来运行代理,并打印输出代理的回复内容。执行后会输出:
- > Entering new AgentExecutor chain...
- > Invoking: `tavily_search_results_json` with `{'query': 'What is the capital of France?'}`
- > Responded with search results
- > Finished chain.
- Paris
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。