Logo Lanfrica

Ous39/multilingual-support-ai

Domain:

natural language processing

Record type:

software
Creator:
Ous
Host:
Grounded multilingual customer-support AI for English, French and Wolof, with retrieval, citations, guardrails, evaluation and human escalation. # Multilingual Support AI A production-minded reference implementation of a grounded customer-support assistant for English, French, and Wolof. It demonstrates retrieval, citations, multilingual responses, PII redaction, prompt-injection handling, confidence-based human escalation, evaluation, monitoring, and deployment. The repository uses entirely synthetic support information. It contains no customer data, employer code, private endpoints, or client materials. ## Why this project exists Customer-support automation in emerging markets must work across languages, unreliable connectivity, limited training data, and high-risk financial workflows. This project focuses on a practical principle: the assistant should answer only when it has relevant support information and should escalate safely when it does not. ## Features - English, French, and Wolof knowledge content and responses - Lightweight BM25 retrieval with source citations - Automatic language detection with an explicit language override - Local extractive mode that runs without an API key - Optional OpenAI-compatible LLM provider - Confidence-based escalation to human support - PII and credential redaction before retrieval or generation - Basic prompt-injection detection - Golden-set evaluation endpoint and command-line runner - Prometheus-compatible operational metrics - FastAPI interactive documentation - Docker, health checks, tests, linting, and GitHub Actions CI ## Architecture ```mermaid flowchart TD A[Customer message] --> B[Language detection] B --> C[Safety and PII filter] C -->|Blocked| H[Human escalation] C -->|Safe| D[BM25 retrieval] D --> E{Enough context?} E -->|No| H E -->|Yes| F[Answer generator] F --> G[Response safety check] G -->|Pass| I[Answer with citations] G -->|Fail| H ``` The default `extractive` provider is deterministic and uses no external service. Setting `LLM_PROVIDER=openai` enables an OpenAI-compatible chat-completions endpoint while keeping retrieval, redaction, …