grounding
**Grounding LLM Responses**
**What is Grounding?**
Grounding ensures LLM outputs are based on reliable sources rather than model parameters alone. It bridges the gap between fluent generation and factual accuracy.
**Grounding Techniques**
**Document Grounding (RAG)**
Base responses on retrieved documents:
```python
def document_grounded(query: str) -> str:
docs = vector_store.search(query, k=5)
context = "
".join([d.text for d in docs])
return llm.generate(f"""
You are a helpful assistant. Answer based ONLY on the provided context.
If the context does not contain the answer, say so.
Context:
{context}
Question: {query}
Answer:
""")
```
**API Grounding**
Ground in real-time data:
```python
def api_grounded(query: str) -> str:
# Extract entities
entities = extract_entities(query)
# Fetch real data
data = {}
for entity in entities:
data[entity] = api.lookup(entity)
return llm.generate(f"""
Use ONLY this data to answer:
{json.dumps(data)}
Question: {query}
""")
```
**Code Execution Grounding**
Ground calculations in actual execution:
```python
def code_grounded(query: str) -> str:
# Generate code
code = llm.generate(f"Write Python code to answer: {query}")
# Execute
result = execute_safely(code)
# Generate response with result
return llm.generate(f"""
The code executed and produced: {result}
Explain this result for: {query}
""")
```
**Grounding vs No Grounding**
| Aspect | Ungrounded | Grounded |
|--------|------------|----------|
| Source | Model parameters | External data |
| Currency | Training cutoff | Real-time possible |
| Verifiability | Low | High |
| Hallucination | Higher risk | Lower risk |
| Latency | Lower | Higher |
**Grounding Sources**
| Source | Use Case |
|--------|----------|
| Documents | Knowledge bases, policies |
| APIs | Real-time data (weather, stocks) |
| Databases | Structured enterprise data |
| Code execution | Calculations, data analysis |
| Web search | Current events, broad knowledge |
**Grounding Prompts**
```
# Strict grounding
Answer using ONLY the provided context. Do not use prior knowledge.
If unsure, state you cannot answer from the given context.
# Soft grounding
Use the provided context as your primary source.
Supplement with your knowledge only when context is insufficient.
Clearly distinguish between sourced and unsourced information.
```
**Verification**
Always verify grounded responses:
- Check citations match source content
- Test with known-answer queries
- Monitor user feedback on accuracy