Skip to main content
Open In ColabOpen on GitHub

柠檬智能体

Lemon Agent 帮助您在几分钟内构建强大的 AI 助手,并通过允许准确可靠的读写操作来自动化 Airtable, Hubspot, Discord, Notion, SlackGithub 等工具的工作流。

请参见 此处的完整文档

大多数当前可用的连接器专注于只读操作,限制了LLMs的潜在能力。相比之下,代理偶尔会因为缺少上下文或指令而胡言乱语。

使用Lemon AI,可以使你的代理访问可靠的读写操作的预定义API。此外,Lemon AI函数可以通过提供静态定义的工作流方式进一步降低幻觉的风险,在模型不确定的情况下可以依赖这些工作流。

快速开始

The following quick start demonstrates how to use Lemon AI in combination with Agents to automate workflows that involve interaction with internal tooling.

1. 安装 LangChain 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. 在 Langchain 中使用 Lemon AI

Lemon AI 自动通过找到合适的工具组合来解决给定的任务,或者使用 Lemon AI 函数作为替代方案。以下示例演示了如何从 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密钥:[

""" 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函数来实现更具确定性的行为。