/agenta

The LLMOps platform to build robust LLM apps. Easily experiment and evaluate different prompts, models, and workflows.

Primary LanguageTypeScriptMIT LicenseMIT



Quickly iterate, debug, and evaluate your LLM apps
The open-source LLMOps platform for prompt-engineering, evaluation and deployment of complex LLM apps.


MIT license. PRs welcome Contributors Last Commit Commits per month


The Open-source Developer-first LLMOps Platform

Building production-ready LLM-powered applications is currently very difficult. It involves countless iterations of prompt engineering, parameter tuning, and architectures.

Agenta provides you with the tools to quickly do prompt engineering and ๐Ÿงช experiment, โš–๏ธ evaluate, and ๐Ÿš€ deploy your LLM apps. All without imposing any restrictions on your choice of framework, library, or model.

agenta-demo.mp4

Getting Started

Please go to docs.agenta.ai for full documentation on:

Deploy to AWS

How Agenta works:

1. Write your LLM-app code

Write the code using any framework, library, or model you want. Add the agenta.post decorator and put the inputs and parameters in the function call just like in this example:

Example simple application that generates baby names

import agenta as ag
from langchain.chains import LLMChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate

default_prompt = "Give me five cool names for a baby from {country} with this gender {gender}!!!!"


@ag.post
def generate(
    country: str,
    gender: str,
    temperature: ag.FloatParam = 0.9,
    prompt_template: ag.TextParam = default_prompt,
) -> str:
    llm = OpenAI(temperature=temperature)
    prompt = PromptTemplate(
        input_variables=["country", "gender"],
        template=prompt_template,
    )
    chain = LLMChain(llm=llm, prompt=prompt)
    output = chain.run(country=country, gender=gender)

    return output

2.Deploy your app using the Agenta CLI.

Screenshot 2023-06-19 at 15 58 34

3. Go to agenta at localhost:3000

Now your team can ๐Ÿ”„ iterate, ๐Ÿงช experiment, and โš–๏ธ evaluate different versions of your app (with your code!) in the web platform.

Screenshot 2023-06-25 at 21 08 53

Features

  • ๐Ÿช„ Playground: With just a few lines of code, define the parameters and prompts you wish to experiment with. You and your team can quickly experiment and test new variants on the web UI.
playground_1024_30.07.2023.mp4
  • ๐Ÿ“Š Version Evaluation: Define test sets, the evaluate manually or programmatically your different variants.
evaluation_1024_30.07.2023.mp4
  • ๐Ÿš€ API Deployment Made Easy: When you are ready, deploy your LLM applications as APIs in one click.

Why choose Agenta for building LLM-apps?

  • ๐Ÿ”จ Build quickly: You need to iterate many times on different architectures and prompts to bring apps to production. We streamline this process and allow you to do this in days instead of weeks.
  • ๐Ÿ—๏ธ Build robust apps and reduce hallucination: We provide you with the tools to systematically and easily evaluate your application to make sure you only serve robust apps to production
  • ๐Ÿ‘จโ€๐Ÿ’ป Developer-centric: We cater to complex LLM-apps and pipelines that require more than one simple prompt. We allow you to experiment and iterate on apps that have complex integration, business logic, and many prompts.
  • ๐ŸŒ Solution-Agnostic: You have the freedom to use any library and models, be it Langchain, llma_index, or a custom-written alternative.
  • ๐Ÿ”’ Privacy-First: We respect your privacy and do not proxy your data through third-party services. The platform and the data are hosted on your infrastructure.

Onboarding and support

Are you interested in using Agenta in your business? We'd love to talk to you about your needs and show you how agenta can help. Book a meeting with the founders here to start the conversation.

Contributing

We warmly welcome contributions to Agenta. Feel free to submit issues, fork the repository, and send pull requests.

We are usually hanging in our Slack. Feel free to join our slack and ask us anything

Check out our Contributing Guide for more information.

Contributors โœจ

All Contributors

Thanks goes to these wonderful people (emoji key):

Sameh Methnani
Sameh Methnani

๐Ÿ’ป ๐Ÿ“–
Suad Suljovic
Suad Suljovic

๐Ÿ’ป ๐ŸŽจ ๐Ÿง‘โ€๐Ÿซ ๐Ÿ‘€
burtenshaw
burtenshaw

๐Ÿ’ป
Abram
Abram

๐Ÿ’ป ๐Ÿ“–
Israel Abebe
Israel Abebe

๐Ÿ› ๐ŸŽจ ๐Ÿ’ป
Master X
Master X

๐Ÿ’ป
corinthian
corinthian

๐Ÿ’ป ๐ŸŽจ
Pavle Janjusevic
Pavle Janjusevic

๐Ÿš‡
Kaosi Ezealigo
Kaosi Ezealigo

๐Ÿ› ๐Ÿ’ป
Alberto Nunes
Alberto Nunes

๐Ÿ›
Maaz Bin Khawar
Maaz Bin Khawar

๐Ÿ’ป ๐Ÿ‘€ ๐Ÿง‘โ€๐Ÿซ
Nehemiah Onyekachukwu Emmanuel
Nehemiah Onyekachukwu Emmanuel

๐Ÿ’ป
Philip Okiokio
Philip Okiokio

๐Ÿ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Attribution: Testing icons created by Freepik - Flaticon