langchain · difficulty ◆◆◆
ChatMistralAI: Surface Citation Metadata from Chat Responses
Ground every answer in its source chunks
Your RAG answers lacked the audit trail needed to trust them.
$ pip install -U langchain-mistralai>=1.1.6What it does
ChatMistralAI now surfaces citation metadata from chat responses. When Mistral returns inline citations referencing source chunks used to ground an answer, LangChain exposes them as structured metadata on the AIMessage via additional_kwargs["citations"].
Why it matters
In RAG pipelines, citations bridge the LLM output and the documents that informed it. Without them you get answers but no accountability. With them you can trace answers to source chunks, highlight passages in a UI, filter low-confidence retrievals, and build trust in production.
Example
$ Ask a RAG-style question and extract citations from the response.=== Answer ===
The 2024 partnership agreement established co-development terms for the joint venture,
including a 50/50 revenue split and a three-year exclusivity clause.
=== Citations (2 found) ===
[1] {"document": "partnership_2024_v1.pdf", "start_index": 1247, "end_index": 1380}
[2] {"document": "partnership_2024_v1.pdf", "start_index": 2105, "end_index": 2230}Exact citation structure may vary; inspect response.additional_kwargs directly.
Common flags
- ChatMistralAI.invoke()
- Returns citations in additional_kwargs
- ChatMistralAI.bind_tools()
- Bind tools/schema to force structured outputs
- AIMessage.additional_kwargs
- Access raw provider metadata on any AIMessage
- with_structured_output()
- Get type-safe structured responses with a Pydantic/Zod schema
History
Origin
Citation data existed in Mistral’s API response but was opaque inside LangChain before this release.
The fix
PR #37008, feat(mistralai): surface citation metadata from chat responses, promoted citations to first-class metadata.
Fun facts
Pros & cons
pros
- + Adds traceability to RAG answers
- + No extra configuration needed
- + Supports hallucination detection
cons
- − Citations only appear when context supports them
- − Structure is provider-specific
Takeaways
- 1Read additional_kwargs for citations
- 2Trace answers to source chunks
- 3Pair citations with embeddings for retrieval quality