class ConversationReference
A dataclass that stores a reference to a previous conversation exchange, including metadata about the reference type, content, and relevance.
/tf/active/vicechatdev/e-ink-llm/conversation_context.py
35 - 42
simple
Purpose
ConversationReference serves as a structured data container for tracking and referencing previous exchanges in a conversation. It enables conversation continuity by storing key information about past interactions including the exchange identifier, type of reference (topic, solution, question, or data), the actual content being referenced, contextual snippets, and a relevance score for ranking or filtering purposes. This is typically used in conversational AI systems, chatbots, or dialogue management systems to maintain context and enable coherent multi-turn conversations.
Source Code
class ConversationReference:
"""Reference to a previous exchange"""
exchange_number: int
exchange_id: str
reference_type: str # 'topic', 'solution', 'question', 'data'
referenced_content: str
context_snippet: str
relevance_score: float
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
- | - |
Parameter Details
exchange_number: An integer representing the sequential position of the exchange in the conversation history. Used for ordering and identifying specific exchanges chronologically.
exchange_id: A unique string identifier for the specific exchange being referenced. Allows for precise lookup and retrieval of the original exchange.
reference_type: A string categorizing the type of reference. Expected values are 'topic', 'solution', 'question', or 'data'. This helps classify what aspect of the previous exchange is being referenced.
referenced_content: A string containing the actual content from the previous exchange that is being referenced. This is the substantive information being recalled.
context_snippet: A string providing a brief excerpt or summary of the surrounding context from the referenced exchange. Helps understand the reference without retrieving the full exchange.
relevance_score: A float value (typically between 0.0 and 1.0) indicating how relevant this reference is to the current context. Higher scores indicate greater relevance, useful for ranking or filtering references.
Return Value
Instantiation returns a ConversationReference object with all six attributes initialized. As a dataclass, it automatically generates __init__, __repr__, __eq__, and other special methods. The object serves as an immutable-by-convention data container for conversation reference metadata.
Class Interface
Methods
__init__(exchange_number: int, exchange_id: str, reference_type: str, referenced_content: str, context_snippet: str, relevance_score: float) -> None
Purpose: Initializes a new ConversationReference instance with all required attributes. Auto-generated by @dataclass decorator.
Parameters:
exchange_number: Sequential position of the exchange in conversation historyexchange_id: Unique identifier for the referenced exchangereference_type: Category of reference: 'topic', 'solution', 'question', or 'data'referenced_content: The actual content being referenced from the previous exchangecontext_snippet: Brief contextual excerpt surrounding the referencerelevance_score: Numerical score indicating relevance (typically 0.0-1.0)
Returns: None - initializes the instance
__repr__() -> str
Purpose: Returns a string representation of the ConversationReference instance. Auto-generated by @dataclass decorator.
Returns: String representation showing all attribute values in the format: ConversationReference(exchange_number=..., exchange_id=..., ...)
__eq__(other: object) -> bool
Purpose: Compares two ConversationReference instances for equality based on all attributes. Auto-generated by @dataclass decorator.
Parameters:
other: Another object to compare with this instance
Returns: True if all attributes are equal, False otherwise
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
exchange_number |
int | Sequential number identifying the position of the exchange in the conversation | instance |
exchange_id |
str | Unique string identifier for the specific exchange being referenced | instance |
reference_type |
str | Category of the reference: 'topic', 'solution', 'question', or 'data' | instance |
referenced_content |
str | The actual content from the previous exchange that is being referenced | instance |
context_snippet |
str | Brief excerpt providing context around the referenced content | instance |
relevance_score |
float | Numerical score indicating how relevant this reference is to the current context | instance |
Required Imports
from dataclasses import dataclass
Usage Example
from dataclasses import dataclass
@dataclass
class ConversationReference:
exchange_number: int
exchange_id: str
reference_type: str
referenced_content: str
context_snippet: str
relevance_score: float
# Create a reference to a previous exchange
ref = ConversationReference(
exchange_number=5,
exchange_id="conv_123_ex_5",
reference_type="solution",
referenced_content="To solve this, use the formula: x = (a + b) / 2",
context_snippet="User asked about calculating averages",
relevance_score=0.92
)
# Access attributes
print(ref.exchange_number) # 5
print(ref.reference_type) # 'solution'
print(ref.relevance_score) # 0.92
# Dataclass provides automatic __repr__
print(ref)
# Dataclass provides automatic equality comparison
ref2 = ConversationReference(5, "conv_123_ex_5", "solution", "To solve this, use the formula: x = (a + b) / 2", "User asked about calculating averages", 0.92)
print(ref == ref2) # True
Best Practices
- Use meaningful exchange_id values that can be traced back to the original conversation storage system
- Ensure reference_type values are consistent across the application (use constants or enums for the four types: 'topic', 'solution', 'question', 'data')
- Normalize relevance_score to a consistent range (typically 0.0 to 1.0) for easier comparison and filtering
- Keep context_snippet concise but informative - it should provide enough context without requiring full exchange retrieval
- Consider making the class frozen (frozen=True) if immutability is desired after creation
- When storing multiple references, sort by relevance_score descending to prioritize most relevant references
- Validate that exchange_number is non-negative and exchange_id is non-empty when creating instances
- Use this class in conjunction with conversation management systems that maintain full exchange history
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class ConversationContext 74.7% similar
-
class Exchange 71.4% similar
-
class ConversationState 67.4% similar
-
class ConversationTurn 64.9% similar
-
class ConversationContextManager 59.4% similar