Skip to main content

LinguaLens (LSADA)

PyPI version

LinguaLens (formerly LSADA - Language Services and Data Analysis) is a flexible Python framework for evaluating content quality using Large Language Models (LLMs).

It provides a structured way to:

  • Define evaluation tasks with specific metrics and weighting.
  • Use different LLM providers (currently OpenAI, Cloudverse supported).
  • Generate prompts tailored to your evaluation criteria.
  • Parse LLM responses to extract scores and justifications.
  • Aggregate results from multiple evaluations for robustness.

Installation

You can install LinguaLens directly from PyPI:

pip install python-lingualens

Quick Start Example

  1. Set your LLM API Key: Make sure you have your API key (e.g., for OpenAI) set as an environment variable:

    export OPENAI_API_KEY="your_api_key_here"
    # On Windows (Command Prompt)
    # set OPENAI_API_KEY=your_api_key_here
    # On Windows (PowerShell)
    # $env:OPENAI_API_KEY="your_api_key_here"
    
  2. Run the basic usage script: Navigate to the examples directory and run the script:

    cd examples
    python 1_basic_usage.py
    

    This script demonstrates:

    • Initializing an OpenAI client.
    • Initializing the Evaluator for a specific task (conversation_evaluation).
    • Evaluating sample content.
    • Printing the detailed results, including the overall score, individual metric scores, and justifications.
    # examples/1_basic_usage.py (Simplified Snippet)
    import os
    import logging
    from lingualens import Evaluator, LLMManager
    
    logging.basicConfig(level=logging.INFO)
    
    api_key = os.getenv("OPENAI_API_KEY")
    task_type = "conversation_evaluation"
    content_to_evaluate = "... (your content here) ..."
    
    if not api_key:
        logging.error("OPENAI_API_KEY not set.")
    else:
        try:
            llm_client = LLMManager.initialize_client(vendor="openai", api_key=api_key)
            evaluator = Evaluator(task_type=task_type, include_justification=True)
            result = evaluator.evaluate(content=content_to_evaluate, llm_client=llm_client)
    
            print("\n----- Evaluation Results -----")
            print(f"Task Type: {result.get('metadata', {}).get('task_type')}")
            print(f"Total Weighted Score: {result.get('total_weighted_score')}")
            # ... (print detailed scores and justifications) ...
    
        except Exception as e:
            logging.error(f"An error occurred: {e}", exc_info=True)
    

Core Components

  • Evaluator: The main class to orchestrate the evaluation.
  • LLMManager: Manages and initializes clients for different LLM vendors.
  • TaskManager: Handles task definitions, metrics, and can auto-identify tasks.
  • PromptGenerator: Creates detailed prompts for the LLM based on configuration.
  • LLMResponseParser: Extracts structured data from LLM responses.
  • MetricsCalculator: Aggregates scores and performs calculations.
  • ConfigManager: Loads configurations from pool

Metadata

Release files for python-lingualens 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-lingualens 1.0.2
File Size Uploaded
python_lingualens-1.0.2.tar.gz 23.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-lingualens 1.0.2
File Interpreter ABI Platform
python_lingualens-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 48.0 kB

Release files / python_lingualens-1.0.2.tar.gz

Download URL python_lingualens-1.0.2.tar.gz
Size 23.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8d6f74923ff3417d831973892c5a7e73a66cd4eb758aefed5db2b8846c07c986
BLAKE2b-256 checksum
How to use checksums
1dcf48db0cac13df3a5241092412af7f8dabd51099e4607fbe32e4b1e90cf828
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.12

Release files / python_lingualens-1.0.2-py3-none-any.whl

Download URL python_lingualens-1.0.2-py3-none-any.whl
Size 25.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
228c3910f0fe5321d2c1b420d7d0ed572132f6afe1cf996166a13b588b049b6d
BLAKE2b-256 checksum
How to use checksums
7df21f4788d4f5839bc7ce7f9c302e17f48ea1a77bcda14cdd06c3ff525f81d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.12

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page