Spaces:
Running
Running
Download src/models/rag.py from TalatMasud/chatbot-backend: direct link, hf CLI and curl.
- Browser
- Download file 1.12 kB
-
https://huggingface.co/spaces/TalatMasud/chatbot-backend/resolve/main/src/models/rag.py
- Command line
-
hf download hf://spaces/TalatMasud/chatbot-backend/src/models/rag.py
-
curl -L -o rag.py https://huggingface.co/spaces/TalatMasud/chatbot-backend/resolve/main/src/models/rag.py
1.12 kB
| # src/models/rag.py | |
| from dataclasses import dataclass | |
| from typing import List, Optional, Dict | |
| from datetime import datetime | |
| class Message: | |
| """Single message in a conversation""" | |
| role: str # 'user' or 'assistant' | |
| content: str | |
| timestamp: datetime | |
| class ConversationContext: | |
| """Conversation context with history""" | |
| messages: List[Message] | |
| max_messages: int = 10 | |
| def add_message(self, role: str, content: str): | |
| """Add a message while maintaining max size""" | |
| self.messages.append(Message( | |
| role=role, | |
| content=content, | |
| timestamp=datetime.utcnow() | |
| )) | |
| # Keep only the most recent messages | |
| if len(self.messages) > self.max_messages: | |
| self.messages = self.messages[-self.max_messages:] | |
| class RAGResponse: | |
| """Enhanced RAG response with conversation context""" | |
| response: str | |
| context_docs: Optional[List[str]] = None | |
| sources: Optional[List[Dict]] = None | |
| scores: Optional[List[float]] = None | |
| conversation_context: Optional[ConversationContext] = None | |