Skip to content
GitHub

Quickstart

Terminal window
uv add lexigram-ai-feedback
from lexigram import Application, LexigramConfig
from lexigram.ai.feedback import FeedbackModule
async def main() -> None:
app = Application(name="feedback-app", config=LexigramConfig.from_yaml())
app.add_module(FeedbackModule.configure())
await app.start()
# FeedbackProtocol is registered — ready to submit feedback
await app.stop()
from lexigram.ai.feedback import FeedbackCollector
collector: FeedbackCollector # resolved from container
feedback_id = await collector.collect_rating(
rating=4.5,
context={"model": "gpt-4o", "session_id": "session-123"},
)
print(f"Stored feedback: {feedback_id}")
  1. FeedbackProvider registered FeedbackCollector, FeedbackProcessorRegistry, and FeedbackService (as FeedbackProtocol) in the container.
  2. During boot(), the provider detected DatabaseProviderProtocol and optionally CacheBackendProtocol to wire a durable DatabaseFeedbackStore (and optionally a CachedFeedbackStore).
  3. FeedbackCollector is now ready to persist feedback through the wired store.
from lexigram import Application, LexigramConfig
from lexigram.ai.feedback import FeedbackModule
from lexigram.sql import DatabaseModule
app = Application(name="my-app")
app.add_module(DatabaseModule.configure("postgresql://localhost/mydb"))
app.add_module(FeedbackModule.configure())
await app.start()
# FeedbackCollector now persists to Postgres via DatabaseFeedbackStore