Skip to main content

AI feedback collection for the Lexigram Framework — collection, processing, and storage

Project description

lexigram-ai-feedback

AI feedback collection for the Lexigram Framework — collection, processing, and storage


Overview

AI feedback collection and continuous-learning loop for the Lexigram Framework. Captures user ratings, corrections, text feedback, and ground-truth labels from LLM interactions and routes them through an extensible processor pipeline to configurable storage backends. Zero-config usage starts with sensible defaults.

Full documentation: docs.lexigram.dev

Install

uv add lexigram-ai-feedback

Quick Start

from lexigram import Application
from lexigram.di.module import Module, module

from lexigram.ai.feedback import FeedbackModule
from lexigram.ai.feedback.config import FeedbackConfig

@module(imports=[
    FeedbackModule.configure(
        FeedbackConfig(
            enabled=True,
            async_processing=True,
            store_raw_payloads=False,
        )
    )
])
class AppModule(Module):
    pass

app = Application(modules=[AppModule])
if __name__ == "__main__":
    app.run()

Configuration

Zero-config usage: Call FeedbackModule.configure() with no arguments to use defaults.

Option 1 — YAML file

# application.yaml
ai_feedback:
  enabled: true
  async_processing: true
  store_raw_payloads: false

Option 2 — Profiles + Environment Variables (recommended)

export LEX_AI_FEEDBACK__ENABLED=true
# Environment variables for each field

Option 3 — Python

from lexigram.ai.feedback.config import FeedbackConfig
from lexigram.ai.feedback import FeedbackModule

config = FeedbackConfig(
    enabled=True,
    async_processing=True,
    store_raw_payloads=False,
)
FeedbackModule.configure(config)

Config reference

Field Default Env var Description
enabled True LEX_AI_FEEDBACK__ENABLED Master on/off switch for all feedback collection
async_processing True LEX_AI_FEEDBACK__ASYNC_PROCESSING Process feedback handlers asynchronously in the background
store_raw_payloads False LEX_AI_FEEDBACK__STORE_RAW_PAYLOADS Persist raw incoming feedback payloads for auditing

Module Factory Methods

Method Description
FeedbackModule.configure(config) Configure with explicit config
FeedbackModule.stub() Minimal config for testing

Key Features

  • Four feedback types: Rating, free-text, correction (original → corrected), and ground-truth labels
  • Extensible processor pipeline: Custom processors via FeedbackProcessorRegistry
  • Storage backends: In-memory, database (DatabaseFeedbackStore), and cache (CachedFeedbackStore)
  • Middleware integration: FeedbackMiddleware and FeedbackContext for request/response capture
  • Lifecycle hooks: FeedbackSubmittedHook, FeedbackProcessedHook, FeedbackStoredHook

Testing

async with Application.boot(modules=[FeedbackModule.stub()]) as app:
    # your test code
    ...

Key Source Files

File What it contains
src/lexigram/ai/feedback/module.py FeedbackModule.configure(), .stub()
src/lexigram/ai/feedback/config.py FeedbackConfig
src/lexigram/ai/feedback/services/collector.py FeedbackCollector core service
src/lexigram/ai/feedback/storage/database.py DatabaseFeedbackStore
src/lexigram/ai/feedback/storage/cache.py CachedFeedbackStore
src/lexigram/ai/feedback/processors/processor_registry.py FeedbackProcessorRegistry
src/lexigram/ai/feedback/di/provider.py FeedbackProvider boot and registration

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lexigram_ai_feedback-0.1.1-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file lexigram_ai_feedback-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lexigram_ai_feedback-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f437345a312c9a6be821ee21f1bf5abfd7cbde1efd9a8283337e676808411bf3
MD5 a450e23bbbfbcf21b1b8895a24c3b46e
BLAKE2b-256 4c6419c58fef320f0357f037232d492a35f9b4043ff34e0b1ba1be32b899d218

See more details on using hashes here.

Supported by

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