import os from dotenv import load_dotenv from prompts import qa_template_V0, qa_template_V1, qa_template_V2 # Load environment variables from .env file load_dotenv() from langchain.chat_models import ChatAnyscale ANYSCALE_ENDPOINT_TOKEN=os.environ.get("ANYSCALE_ENDPOINT_TOKEN") anyscale_api_key =ANYSCALE_ENDPOINT_TOKEN llm=ChatAnyscale(anyscale_api_key=anyscale_api_key,temperature=0, model_name='mistralai/Mistral-7B-Instruct-v0.1', streaming=False) ## Create embeddings and splitter from langchain.embeddings import HuggingFaceBgeEmbeddings from langchain.text_splitter import RecursiveCharacterTextSplitter # Create Embeddings model_name = "BAAI/bge-large-en" embedding = HuggingFaceBgeEmbeddings( model_name = model_name, # model_kwargs = {'device':'cuda'}, encode_kwargs = {'normalize_embeddings': True} ) # Create Splitter splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=100, ) from langchain_community.vectorstores import FAISS # persits_directory="./faiss_V04_C500_BGE_large_web_doc_with_split-final" persits_directory="./faiss_V06_C500_BGE_large-Final" vectorstore= FAISS.load_local(persits_directory, embedding) # Define a custom prompt for Unser manual from langchain.prompts import PromptTemplate QA_PROMPT = PromptTemplate(input_variables=["context", "question"],template=qa_template_V2,)