Spaces:
Paused
Paused
| from typing import List | |
| class Response: | |
| def __init__(self): | |
| self.answer = '' | |
| self.sources = [] | |
| def set_answer(self, answer: str) -> None: | |
| self.answer = answer | |
| def set_sources(self, sources: List) -> None: | |
| self.sources = list(set(map(str, sources))) | |
| def get_sources(self) -> List[str]: | |
| return self.sources | |
| def get_sources_as_text(self) -> str: | |
| if not self.sources: | |
| return '' | |
| sources_text = '\n\nSources:' | |
| for i, (source) in enumerate(self.sources): | |
| sources_text += f'\n [{i+1}] {source}' | |
| return sources_text | |
| def get_answer(self, include_sources: bool = False) -> str: | |
| answer = self.answer | |
| if include_sources: | |
| answer += self.get_sources_as_text() | |
| return answer | |
| def __str__(self): | |
| return self.get_answer(include_sources=True) | |