Spaces:
Sleeping
Sleeping
| from langchain.prompts import ( | |
| PromptTemplate, | |
| SystemMessagePromptTemplate, | |
| HumanMessagePromptTemplate, | |
| ChatPromptTemplate, | |
| ) | |
| from langchain_core.prompts import MessagesPlaceholder | |
| from prompts import review_template_str, refine_query_prompt, question_answering_prompt | |
| def create_chat_history_prompt(): | |
| contextualize_q_prompt = ChatPromptTemplate.from_messages( | |
| [ | |
| ("system", refine_query_prompt), | |
| MessagesPlaceholder("chat_history"), | |
| ("human", "{input}"), | |
| ] | |
| ) | |
| qa_prompt = ChatPromptTemplate.from_messages( | |
| [ | |
| ("system", question_answering_prompt), | |
| MessagesPlaceholder("chat_history"), | |
| ("human", "{input}"), | |
| ] | |
| ) | |
| return contextualize_q_prompt, qa_prompt | |
| def format_context(relevant_docs): | |
| formatted_context = "" | |
| for i, doc in enumerate(relevant_docs, 1): | |
| formatted_context += f"Document {i}:\n" | |
| formatted_context += f"Content: {doc.page_content}\n" | |
| if doc.metadata: | |
| formatted_context += "Metadata:\n" | |
| for key, value in doc.metadata.items(): | |
| formatted_context += f" {key}: {value}\n" | |
| formatted_context += "\n" | |
| return formatted_context.strip() | |
| def get_page_content(retrieved_context): | |
| context = "" | |
| for doc in retrieved_context: | |
| context += doc.page_content | |
| context += "\n" | |
| return context | |