AI 日报

AI 代理教程:如何使用和构建 AI 代理

  • By aihubon
  • Dec 19, 2023 - 2 min read



AI 代理教程:如何使用和构建 AI 代理

介绍

AI 代理通过自己解决给定任务的能力迅速流行起来。我猜您听说过 AutoGPT、BabyAGI 或 CAMEL 等项目。今天您将至少部分了解它们的工作原理!

什么是人工智能代理?

AI Agent 是一种计算机系统,旨在做出决策、选择工具并采取行动以实现特定的、通常是预定义的目标或一组目标。代理自主运行,很少需要人为干预。

正是合适的强大工具,以及自力更生,目前让 AI Agents 受到如此多的关注。它们无疑是我们的未来,值得熟悉这项技术。

如何使用AI代理?

目前,有几个选项可以尝试代理。您可以选择现成的解决方案,例如 AutoGPT。正好我们的团队已经和他们合作过了,你可以在我们的平台上找到教程。

另一种选择是自己构建代理。我会选择这种方式。它将为此使用 LangChain。它是为基于大型语言模型构建应用程序而创建的框架。它非常强大,使模型和代理的工作变得更加容易!

编码部分

我们已经知道为什么值得学习代理。现在让我们开始工作并尝试创建我们自己的东西!

项目结构

让我们首先创建一个新目录并初始化 Python 环境。

mkdir ai-agentscd ai-agentspython3 -m venv venv# Linux / MacOSsource venv/bin/activate# Windows.\venv\Scripts\activate

依赖关系

让我们从安装必要的工具开始。我们将需要langchain– 与 LLM 和代理合作,requests– 向外部 API、SDK 发出请求,openai以便更轻松地使用 OpenAI 的模型和duckduckgo-search进行网络搜索。

!pip install langchain!pip install openai!pip install requests!pip install duckduckgo-search

现在我们可以导入库了。

import requestsfrom langchain import OpenAIfrom langchain.agents import initialize_agent, load_tools, Toolfrom langchain.chains import LLMChainfrom langchain.prompts import PromptTemplatefrom langchain.tools import DuckDuckGoSearchRun

在这一点上,我想从 OpenAI 定义 LLM。我将在本教程中使用 GPT-3。你可以玩其他模型。我还将定义初始提示并为此模型创建一个链。

OPENAI_API_KEY = "sk-..."llm = OpenAI(    openai_api_key=OPENAI_API_KEY,    temperature=0.8,    model_name="text-davinci-003")prompt = PromptTemplate(  input_variables=["query"],  template="You are New Native Internal Bot. Help users with their important tasks, like a professor in a particular field. Query: {query}")llm_chain = LLMChain(llm=llm, prompt=prompt)

没有任何工具的测试模型

现在让我们看看我们的模型在面对我们的问题时的表现。让我们看看它是否知道 aihubpro.cn是什么,以及它将如何处理积分!

llm_chain.run("What is aihubpro.cn")

aihubpro.cn 是一个技术平台,可为企业提供人工智能和机器学习驱动的解决方案,以帮助简化他们的运营并提高他们的效率。它提供了一套人工智能服务,例如自然语言处理、机器视觉、自动化和其他行业特定的解决方案。它旨在帮助企业改善客户体验、降低成本并提高生产力。

llm_chain.run("Integral of x * (log(x)^2)")

答案是 x^2 log(x)^3 / 3 + C,其中 C 是任意积分常数。

如您所见,这两个答案都是错误的。积分的正确值为:1/4 x^2 (1 - 2 log(x) + 2 log^2(x))另一方面,aihubpro.cn是什么我认为我不需要向任何人解释 😉。

不正确的答案是由于 LLM 缺乏计算能力,并且缺乏最新信息。我们使用的模型具有截至 2021 年 9 月的信息。aihubpro.cn平台是后来创建的。但是,对于这两个问题,我们都有解决方案!

为代理准备工具

要处理我们的问题,使用 Agent 和 Tools 是个好主意。我们可以使用互联网搜索工具——这将使我们能够搜索最新信息。这将把我们模型的知识范围扩大到今天!已经有一个现成的工具,我们只会从 LangChain 导入!计数问题的解决方案是来自 Wolfram Alpha 的 API。它可以很好地处理数学问题!我强烈推荐它。

让我们从组装一个搜索工具开始。它被称为DuckDuckGoSearchRun我们之前已经导入它。

search = DuckDuckGoSearchRun()# Web Search Toolsearch_tool = Tool(    name = "Web Search",    func=search.run,    description="A useful tool for searching the Internet to find information on world events, issues, etc. Worth using for general topics. Use precise questions.")

就那么简单!现在让我们创建一个解决数学问题的工具。我们将为此创建一个自定义类。Wolfram Alpha 创建了许多 API,但我将使用最简单的一种。

class WA:  """    Wolfram|Alpha API  """  def __init__(self, app_id):    self.url = f"http://api.wolframalpha.com/v1/result?appid={app_id}&i="  def run(self, query):    query = query.replace("+", " plus ").replace("-", " minus ") # '+' and '-' are used in URI and cannot be used in request    result = requests.post(f"{self.url}{query}")    if not result.ok:      raise Exception("Cannot call WA API.")    return result.text

该 API 将以自然语言处理请求并返回结果。这对我们来说是完美的!run方法将处理!现在让我们定义我们的工具。

WA_API_KEY = "" # You can get it here: https://products.wolframalpha.com/api/wa = WA(app_id=WA_API_KEY)wa_tool = Tool(    name="Wolfram|Alpha API",    func=wa.run,    description="Wolfram|Alpha API. It's super powerful Math tool. Use it for simple & complex math tasks.")

创建代理并测试性能

好的,最后一步是创建一个代理,给它工具并检查结果。我们开始做吧!

agent = initialize_agent(    agent="zero-shot-react-description",    tools=[wa_tool, search_tool],    llm=llm,    verbose=True, # I will use verbose=True to check process of choosing tool by Agent    max_iterations=3)

让我们看看以前的提示!

r_1 = agent("What is aihubpro.cn?")print(f"Final answer: {r_1['output']}")r_2 = agent("Integral of x * (log(x)^2)")print(f"Final answer: {r_2['output']}")

以前的答案:

aihubpro.cn是一个技术平台,可为企业提供人工智能和机器学习驱动的解决方案,以帮助简化他们的运营并提高他们的效率。它提供了一套人工智能服务,例如自然语言处理、机器视觉、自动化和其他行业特定的解决方案。它旨在帮助企业改善客户体验、降低成本并提高生产力。

答案是 x^2 log(x)^3 / 3 + C,其中 C 是任意积分常数。

新答案:

aihubpro.cn是一个致力于人工智能工具和技术的平台。它提供 AI 教程、黑客马拉松、访问最先进的语言模型等。

x^2/4 + 1/2 x^2 log^2(x) – 1/2 x^2 log(x)

结论

正如您在工具中看到的那样,结果要好得多!积分计算正确,aihubpro.cn平台问题的答案质量也更好。这显示了添加简单工具如何帮助提高答案的正确性。我认为这就是为什么现在值得您花时间,以便将来我们与 LLM 的工作得到更好的帮助!

有什么可以改进的?

为了改进应用程序,它建议尝试其他类型的代理,对于它们来说,使用内存也是值得的,这里矢量数据库可以派上用场。

用 AI 塑造未来。

成为AIHubPro.cn的一部分

谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站