Skip to main content
Open In ColabOpen on GitHub

柠檬代理

Lemon Agent helps you build powerful AI assistants in minutes and automate workflows by allowing for accurate and reliable read and write operations in tools like Airtable, Hubspot, Discord, Notion, Slack and Github.

查看完整文档

目前大多数连接器都专注于只读操作,限制了大型语言模型的潜力。另一方面,智能体由于缺乏上下文或指令,有时会倾向于产生幻觉。

借助 Lemon AI,您可以为智能体提供定义明确的 API 访问权限,以实现可靠的读写操作。此外,Lemon AI 函数允许您通过提供一种静态定义工作流的方式,进一步降低幻觉风险;在模型遇到不确定性时,可依赖这些工作流。

快速入门

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

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 functions,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. 提高对智能体决策过程的透明度

为了让您了解您的 Agent 如何与 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 函数转向更确定的行为。