ragas README

The project's README from github.com/vibrantlabsai/ragas. As one markdown file: README.md.

Supercharge Your LLM Application Evaluations 🚀

Latest release Made with Python License Apache-2.0 Ragas Downloads per month Join Ragas community on Discord Ask DeepWiki.com

Documentation | Quick start | Join Discord | Blog | NewsLetter | Careers

Objective metrics, intelligent test generation, and data-driven insights for LLM apps

Ragas is your ultimate toolkit for evaluating and optimizing Large Language Model (LLM) applications. Say goodbye to time-consuming, subjective assessments and hello to data-driven, efficient evaluation workflows. Don't have a test dataset ready? We also do production-aligned test set generation.

Key Features

:shield: Installation

Pypi:

pip install ragas

Alternatively, from source:

pip install git+https://github.com/vibrantlabsai/ragas

:fire: Quickstart

Clone a Complete Example Project

The fastest way to get started is to use the ragas quickstart command:

# List available templates
ragas quickstart

# Create a RAG evaluation project
ragas quickstart rag_eval

# Specify where you want to create it.
ragas quickstart rag_eval -o ./my-project

Available templates:

Coming Soon:

Evaluate your LLM App

ragas comes with pre-built metrics for common evaluation tasks. For example, Aspect Critique evaluates any aspect of your output using DiscreteMetric:

import asyncio
from openai import AsyncOpenAI
from ragas.metrics import DiscreteMetric
from ragas.llms import llm_factory

# Setup your LLM
client = AsyncOpenAI()
llm = llm_factory("gpt-4o", client=client)

# Create a custom aspect evaluator
metric = DiscreteMetric(
    name="summary_accuracy",
    allowed_values=["accurate", "inaccurate"],
    prompt="""Evaluate if the summary is accurate and captures key information.

Response: {response}

Answer with only 'accurate' or 'inaccurate'."""
)

# Score your application's output
async def main():
    score = await metric.ascore(
        llm=llm,
        response="The summary of the text is..."
    )
    print(f"Score: {score.value}")  # 'accurate' or 'inaccurate'
    print(f"Reason: {score.reason}")


if __name__ == "__main__":
    asyncio.run(main())

Note: Make sure your OPENAI_API_KEY environment variable is set.

Find the complete Quickstart Guide

Want help in improving your AI application using evals?

In the past 2 years, we have seen and helped improve many AI applications using evals. If you want help with improving and scaling up your AI application using evals.

🔗 Book a slot or drop us a line: [email protected].

🫂 Community

If you want to get more involved with Ragas, check out our discord server. It's a fun community where we geek out about LLM, Retrieval, Production issues, and more.

Contributors

+----------------------------------------------------------------------------+
|     +----------------------------------------------------------------+     |
|     | Developers: Those who built with `ragas`.                      |     |
|     | (You have `import ragas` somewhere in your project)            |     |
|     |     +----------------------------------------------------+     |     |
|     |     | Contributors: Those who make `ragas` better.       |     |     |
|     |     | (You make PR to this repo)                         |     |     |
|     |     +----------------------------------------------------+     |     |
|     +----------------------------------------------------------------+     |
+----------------------------------------------------------------------------+

We welcome contributions from the community! Whether it's bug fixes, feature additions, or documentation improvements, your input is valuable.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🔍 Open Analytics

At Ragas, we believe in transparency. We collect minimal, anonymized usage data to improve our product and guide our development efforts.

✅ No personal or company-identifying information

✅ Open-source data collection code

✅ Publicly available aggregated data

To opt-out, set the RAGAS_DO_NOT_TRACK environment variable to true.

Cite Us

@misc{ragas2024,
  author       = {VibrantLabs},
  title        = {Ragas: Supercharge Your LLM Application Evaluations},
  year         = {2024},
  howpublished = {\url{https://github.com/vibrantlabsai/ragas}},
}

ragas (vibrantlabsai/ragas)

Searching Database…

16K ·GitHub
Что это такое?Ragas — это опенсорсный Python-инструментарий для оценки и оптимизации LLM-приложений: объективные метрики, автоматическая генерация тестовых наборов и выводы на основе данных вместо медленной и субъективной ручной проверки.
Это библиотека, которую я вызываю из своего кода, или облачная платформа?Это Python-библиотека: вы устанавливаете её из PyPI (или собираете из исходников) в свой проект; в комплекте также идёт небольшой CLI, команда 'ragas quickstart' которого разворачивает полный пример проекта.
С чего начать работу с ним?Установите библиотеку через pip, экспортируйте переменную OPENAI_API_KEY, затем запустите 'ragas quickstart' — она склонирует готовый к запуску проект для оценки; на сегодня доступный шаблон — rageval для оценки RAG-систем.
Нужен ли мне API-ключ OpenAI, чтобы запускать оценки?Для quickstart — да: в README напоминают, что нужно задать переменную окружения OPENAI_API_KEY, потому что среди метрик есть основанные на LLM, которые под капотом обращаются к модели.
Можно ли оценивать с его помощью AI-агентов, или пока только RAG?Готовое покрытие ориентировано в первую очередь на RAG: сегодня rageval оценивает RAG-системы, а шаблоны для оценки агентов, вариантов промптов, оценки workflow и бенчмаркинга LLM всё ещё помечены как Coming Soon.
Он собирает какие-нибудь данные о моём использовании?Да, по умолчанию собирается минимум анонимизированной статистики использования для улучшения продукта; код сбора открыт, а агрегированные данные опубликованы. Чтобы отключить сбор, задайте RAGAS_DO_NOT_TRACK=true.
С какими фреймворками и инструментами он интегрируется?Заявлена бесшовная интеграция с популярными LLM-фреймворками, такими как LangChain, и с основными инструментами наблюдаемости, так что он встраивается в тот стек, который ваше приложение уже использует.
А если у меня ещё нет тестового датасета?Ragas сгенерирует его за вас: автоматически создаются полные тестовые наборы, соответствующие продакшену и охватывающие широкий спектр сценариев, так что можно начинать оценку ещё до сбора реальных данных.
Какие метрики уже встроены?Готовые метрики для типовых задач оценки — как на основе LLM, так и традиционные; например, Aspect Critique оценивает любой аспект вашего вывода с помощью DiscreteMetric.
Чем это лучше, чем самому глазами просматривать ответы модели?Ручная оценка отнимает время и субъективна; Ragas заменяет её объективными метриками, сгенерированными тестовыми данными и контурами обратной связи из продакшена, которые постоянно улучшают ваше LLM-приложение.
Size
46.4 MB
Stars
16K
Age
3y
Commits · 90 Days