(self, doc_id, query, context_size=4)
| 463 | return response, relevant_document_coordinates |
| 464 | |
| 465 | def _get_context(self, doc_id, query, context_size=4) -> tuple[List[Document], list]: |
| 466 | db = self.data_storage.embeddings_dict[doc_id] |
| 467 | retriever = db.as_retriever(search_kwargs={"k": context_size}) |
| 468 | relevant_documents = retriever.invoke(query) |
| 469 | relevant_document_coordinates = [ |
| 470 | doc.metadata["coordinates"].split(";") if "coordinates" in doc.metadata else [] for doc in relevant_documents |
| 471 | ] |
| 472 | if self.memory and len(self.memory.buffer_as_messages) > 0: |
| 473 | relevant_documents.append( |
| 474 | Document( |
| 475 | page_content="""Following, the previous question and answers. Use these information only when in the question there are unspecified references:\n{}\n\n""".format( |
| 476 | self.memory.buffer_as_str |
| 477 | ) |
| 478 | ) |
| 479 | ) |
| 480 | return relevant_documents, relevant_document_coordinates |
| 481 | |
| 482 | def get_full_context_by_document(self, doc_id): |
| 483 | """ |
no test coverage detected