Skip to main content

Lemon AI's A Python client. Grant your LLM agents access to a wide range of APIs for read and write operations, creating copilots in minutes and unlocking the true potential of LLMs.

Project description

🍋 Lemon AI

Gateway to empower LLM agents to interact with the world

Discord Twitter MIT License
Run Notebook in LangChain Docs

Heatmap Example

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.

Most connectors available today are focused on read-only operations, limiting the potential of LLMs. Agents, on the other hand, have a tendency to hallucinate from time to time due to missing context or instructions.

With Lemon AI, it is possible to give your agents access to well-defined APIs for reliable read and write operations. In addition, Lemon AI functions allow you to further reduce the risk of hallucinations by providing a way to statically define workflows that the model can rely on in case of uncertainty.

⚡️ Getting Started

1. Prerequisites

Requires Python 3.8.1 and above.

2. Installing

To use Lemon AI in your Python project run pip install lemonai. The following example uses an OpenAI model. Therefore, we also need to pip install openai. Depending on which model you want to use this install is optional.

3. (Optional) Launch the Server

The interaction of your agents and all Lemon AI tools is provided by the Lemon AI Server. Per default the Lemon AI Python client is sending requests to a hosted server version. To run the Lemon AI server on-prem please refer to the Server Documentation.

4. Use Lemon AI with LangChain

The easiest way to give Lemon AI a try is via the Jupyter Notebook you can find in the LangChain Docs.

Lemon AI automatically solves given tasks by finding the right combination of relevant tools or uses Lemon AI Functions as an alternative. The following example demonstrates how to retrieve a user from Hackernews and write it to a table in Airtable:

Include Lemon AI in your LangChain project

import os
from lemonai import execute_workflow
from langchain import OpenAI

Load API Keys and Access Tokens

To use tools that require authentication, you have to store the corresponding access credentials in your environment in the format "{tool name}_{authentication string}" where the authentication string is one of ["API_KEY", "SECRET_KEY", "SUBSCRIPTION_KEY", "ACCESS_KEY"] for API keys or ["ACCESS_TOKEN", "SECRET_TOKEN"] for authentication tokens. Examples are "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*"

Define your prompt and execute the LangChain Agent

hackernews_username = "*INSERT HACKERNEWS USERNAME HERE*"
"""
Guidelines on identifying Airtable ids here:
https://www.highviewapps.com/kb/where-can-i-find-the-airtable-base-id-and-table-id/
"""
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)

(Optional) Define your Lemon AI Functions

Similar to OpenAI functions, Lemon AI provides the option to define workflows as reusable functions. These functions can be defined for use cases where it is especially important to move as close as possible to near-deterministic behavior. Specific workflows can be defined in a separate lemonai.json. You can find the corresponding tool ids (e.g. hackernews-get-user) in the Tool Docs:

[
  {
    "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"]
  }
]

Your model will have access to these functions and will prefer them over self-selecting tools to solve a given task. All you have to do is to let the agent know that it should use a given function by including the function name in the prompt (e.g. prompt = f"""Execute the Hackernews Airtable user workflow...).

4. Gain transparency on your Agent's decision making

To gain transparency on how your Agent interacts with Lemon AI tools to solve a given task, all decisions made, tools used and operations performed are written to a local lemonai.log file. Every time your LLM agent is interacting with the Lemon AI tool stack a corresponding log entry is created:

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

By using the Lemon AI Analytics Tool you can easily gain a better understanding of how frequently and in which order tools are used. As a result, you can identify weak spots in your agent’s decision-making capabilities and move to a more deterministic behavior by defining Lemon AI functions.

Heatmap Example

🧩 Supported Tools

We already allow agents to interact with over 120 tools across the following services:

  • HackerNews
  • Airtable
  • Slack
  • HubSpot
  • Github
  • Notion
  • Discord

🩻 Next Up

  • Github
  • Notion
  • Discord
  • Gmail
  • Google Calendar
  • Kafka
  • Pipedrive
  • Monday.com
  • Stripe
  • Medium
  • Google Cloud Realtime Database
  • Salesforce

🦸 Contributing

Great to see you here! We are extremely open to contributions! You can find more information in our CONTRIBUTING.md. If you have any more questions feel free to drop us a message on Discord.

❤️‍🔥 Team


Felix
Hey there 🥳 I am Felix, the creator of Lemon AI. Always happy to chat and answer any questions you might have! So feel free to reachout on Twitter or Email

Active Contributors

People who actively help out improving the codebase by making PRs and reviewing code.


Mohammed Hannan

Hai Nghiem

Clemens Schroeer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lemonai-0.1.0.tar.gz (5.8 MB view details)

Uploaded Source

Built Distribution

lemonai-0.1.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file lemonai-0.1.0.tar.gz.

File metadata

  • Download URL: lemonai-0.1.0.tar.gz
  • Upload date:
  • Size: 5.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for lemonai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aefbbe5925d702f490ee26d84c7d7ed958fdbf22f1ebbe453d667f4e1d11b61e
MD5 410b009e5dbc78dd9143234cd56bab37
BLAKE2b-256 130a9a0d703022f086e0ef19b876bab35ee2dc8cab1514d5ede6a5c21635dfd3

See more details on using hashes here.

File details

Details for the file lemonai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lemonai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for lemonai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0e8d24d39ebee8ef2007d3045628a5e5ce26dc30bb85209419f5616e5bb4d81
MD5 541e597ae6764185206d5125aacb99b3
BLAKE2b-256 786dd717f3fb5e711fd2c50ffa2137047f1c9a359d20b358f911bebccf96d465

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page