dspy.experimental.Document¶
dspy.experimental.Document
¶
Bases: Type
A document type for providing content that can be cited by language models.
This type represents documents that can be passed to language models for citation-enabled responses, particularly useful with Anthropic's Citations API. Documents include the content and metadata that helps the LM understand and reference the source material.
Attributes:
Name | Type | Description |
---|---|---|
data |
str
|
The text content of the document |
title |
str | None
|
Optional title for the document (used in citations) |
media_type |
Literal['text/plain', 'application/pdf']
|
MIME type of the document content (defaults to "text/plain") |
context |
str | None
|
Optional context information about the document |
Example
import dspy
from dspy.signatures import Signature
from dspy.experimental import Document, Citations
class AnswerWithSources(Signature):
'''Answer questions using provided documents with citations.'''
documents: list[Document] = dspy.InputField()
question: str = dspy.InputField()
answer: str = dspy.OutputField()
citations: Citations = dspy.OutputField()
# Create documents
docs = [
Document(
data="The Earth orbits the Sun in an elliptical path.",
title="Basic Astronomy Facts"
),
Document(
data="Water boils at 100°C at standard atmospheric pressure.",
title="Physics Fundamentals",
)
]
# Use with a citation-supporting model
lm = dspy.LM("anthropic/claude-opus-4-1-20250805")
predictor = dspy.Predict(AnswerWithSources)
result = predictor(documents=docs, question="What temperature does water boil?", lm=lm)
print(result.citations)
Functions¶
description() -> str
classmethod
¶
Description of the document type for use in prompts.
Source code in dspy/adapters/types/document.py
extract_custom_type_from_annotation(annotation)
classmethod
¶
Extract all custom types from the annotation.
This is used to extract all custom types from the annotation of a field, while the annotation can
have arbitrary level of nesting. For example, we detect Tool
is in list[dict[str, Tool]]
.
Source code in dspy/adapters/types/base_type.py
format() -> list[dict[str, Any]]
¶
Format document for LM consumption.
Returns:
Type | Description |
---|---|
list[dict[str, Any]]
|
A list containing the document block in the format expected by citation-enabled language models. |
Source code in dspy/adapters/types/document.py
serialize_model()
¶
validate_input(data: Any)
classmethod
¶
Source code in dspy/adapters/types/document.py
:::