Skip to main content
Open In Colab在 GitHub 上打开

柠檬代理

Lemon Agent 允许您在工具中进行准确可靠的读写作,从而帮助您在几分钟内构建强大的 AI 助手并自动化工作流程Airtable,Hubspot,Discord,Notion,SlackGithub.

在此处查看完整文档

目前可用的大多数连接器都专注于只读作,限制了 LLM 的潜力。另一方面,由于缺少上下文或说明,代理有时会产生幻觉。

Lemon AI,则可以让您的代理访问定义明确的 API,以实现可靠的读取和写入作。另外Lemon AI函数允许您通过提供一种方法来静态定义模型在不确定的情况下可以依赖的工作流程,从而进一步降低幻觉的风险。

快速开始

以下快速入门演示了如何将 Lemon AI 与 Agents 结合使用,以自动化涉及与内部工具交互的工作流程。

1. 安装 Lemon AI

需要 Python 3.8.1 及更高版本。

要在 Python 项目中使用 Lemon AI,请运行pip install lemonai

这将安装相应的 Lemon AI 客户端,然后您可以将其导入到脚本中。

该工具使用 Python 包 langchain 和 loguru。如果 Lemon AI 出现任何安装错误,请先安装这两个软件包,然后再安装 Lemon AI 软件包。

2. 启动服务器

您的代理和 Lemon AI 提供的所有工具的交互由 Lemon AI 服务器处理。要使用 Lemon AI,您需要在本地计算机上运行服务器,以便 Lemon AI Python 客户端可以连接到它。

3. 将 Lemon AI 与 Langchain 结合使用

Lemon AI 通过找到相关工具的正确组合来自动解决给定的任务,或使用 Lemon AI Functions 作为替代方案。以下示例演示如何从 Hackernews 中检索用户并将其写入 Airtable 中的表:

(可选)定义您的 Lemon AI 函数

OpenAI 函数类似,Lemon AI 提供了将工作流定义为可重用函数的选项。这些函数可以针对尽可能接近确定性行为尤为重要的用例进行定义。可以在单独的lemonai.json中定义特定工作流:

[
{
"name": "Hackernews Airtable User Workflow",
"description": "retrieves user data from Hackernews and appends it to a table in Airtable",
"tools": ["hackernews-get-user", "airtable-append-data"]
}
]

您的模型将可以访问这些函数,并且会更喜欢它们而不是自选择工具来解决给定的任务。您所要做的就是通过在提示中包含函数名称来让代理知道它应该使用给定的函数。

将 Lemon AI 包含在您的 Langchain 项目中

import os

from langchain_openai import OpenAI
from lemonai import execute_workflow
API 参考:OpenAI

加载 API 密钥和访问令牌

要使用需要身份验证的工具,您必须将相应的访问凭证存储在您的环境中,格式为"{tool name}_{authentication string}"其中,身份验证字符串是 API 密钥的 [“API_KEY”、“SECRET_KEY”、“SUBSCRIPTION_KEY”、“ACCESS_KEY”] 或 [“ACCESS_TOKEN”、“SECRET_TOKEN”] (身份验证令牌)之一。例如“OPENAI_API_KEY”、“BING_SUBSCRIPTION_KEY”、“AIRTABLE_ACCESS_TOKEN”。

""" Load all relevant API Keys and Access Tokens into your environment variables """
os.environ["OPENAI_API_KEY"] = "*INSERT OPENAI API KEY HERE*"
os.environ["AIRTABLE_ACCESS_TOKEN"] = "*INSERT AIRTABLE TOKEN HERE*"
hackernews_username = "*INSERT HACKERNEWS USERNAME HERE*"
airtable_base_id = "*INSERT BASE ID HERE*"
airtable_table_id = "*INSERT TABLE ID HERE*"

""" Define your instruction to be given to your LLM """
prompt = f"""Read information from Hackernews for user {hackernews_username} and then write the results to
Airtable (baseId: {airtable_base_id}, tableId: {airtable_table_id}). Only write the fields "username", "karma"
and "created_at_i". Please make sure that Airtable does NOT automatically convert the field types.
"""

"""
Use the Lemon AI execute_workflow wrapper
to run your Langchain agent in combination with Lemon AI
"""
model = OpenAI(temperature=0)

execute_workflow(llm=model, prompt_string=prompt)

4. 提高代理人决策的透明度

为了透明地了解您的代理如何与 Lemon AI 工具交互以解决给定任务,所做的所有决策、使用的工具和执行的作都写入本地lemonai.log文件。每次您的 LLM 代理与 Lemon AI 工具堆栈交互时,都会创建相应的日志条目。

2023-06-26T11:50:27.708785+0100 - b5f91c59-8487-45c2-800a-156eac0c7dae - hackernews-get-user
2023-06-26T11:50:39.624035+0100 - b5f91c59-8487-45c2-800a-156eac0c7dae - airtable-append-data
2023-06-26T11:58:32.925228+0100 - 5efe603c-9898-4143-b99a-55b50007ed9d - hackernews-get-user
2023-06-26T11:58:43.988788+0100 - 5efe603c-9898-4143-b99a-55b50007ed9d - airtable-append-data

通过使用 Lemon AI Analytics,您可以轻松更好地了解工具的使用频率和顺序。因此,您可以识别代理决策能力中的薄弱环节,并通过定义 Lemon AI 函数来转向更具确定性的行为。