hunk.code_window: from langchain.prompts import HumanMessagePromptTemplate
   from langchain.schema import format_document
   from langchain_community.chat_models import ChatLiteLLM
   from langchain_core.messages import SystemMessage, get_buffer_string
   from langchain_core.output_parsers import StrOutputParser
  
hunk.labels: keep keep keep replace keep
hunk.after_edit: from langchain_core.messages import SystemMessage
  
hunk.file_path: backend/modules/brain/rags/quivr_rag.py
hunk.type: replace
file: import { Page } from "@playwright/test";
  
  export const login = async (page: Page): Promise<void> => {
    const frontendUrl = process.env.NEXT_PUBLIC_E2E_URL;
    const email = process.env.NEXT_PUBLIC_E2E_EMAIL;
    const password = process.env.NEXT_PUBLIC_E2E_PASSWORD;
  
    if (frontendUrl === undefined) {
      throw new Error("NEXT_PUBLIC_E2E_URL is not defined");
    }
    if (email === undefined) {
      throw new Error("NEXT_PUBLIC_E2E_EMAIL is not defined");
    }
    if (password === undefined) {
      throw new Error("NEXT_PUBLIC_E2E_PASSWORD is not defined");
    }
  
    await page.goto(frontendUrl);
    await page.getByTestId("login-button").first().click();
    await page.getByPlaceholder("Email").fill(email);
    await page.getByPlaceholder("Password").fill(password);
    await page.getByTestId("submit-login").click();
    await page.getByTestId("chat-page").isVisible();
  };
  