# Document and chat pipelines

> Use explicit provenance for retrieval and conversational context.

Compress retrieved documents and chat messages with role-aware defaults.

Category: API Reference · Updated: September 2026 · 4 min read

## Retrieved documents

compress_documents() defaults to ContextRole.RAG. This is an intentional v0.3.1 behavior change.

```python
from llmslim import compress_documents
results = compress_documents(documents, query=user_query, target_ratio=0.4)
```

## Chat messages

compress_chat_messages() propagates system, developer, user, assistant, and tool roles. Unknown roles map to GENERAL.

```python
from llmslim import compress_chat_messages
compressed = compress_chat_messages(messages, target_ratio=0.5)
```

## FAQ

### Are system messages compressed by default?

No. The default chat pipeline leaves system messages unchanged.

## Related

- [Provenance and ContextRole](https://www.llmslim.app/docs/context-role.md)

Canonical page: https://www.llmslim.app/docs/pipelines
