# rag_chain.py import os import weaviate from langchain.chat_models import ChatOpenAI from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Weaviate from langchain.chains import RetrievalQA def build_rag_chain(): client = weaviate.Client( url=os.getenv("WEAVIATE_URL"), auth_client_secret=weaviate.AuthApiKey(os.getenv("WEAVIATE_API_KEY")), additional_headers={"X-OpenAI-Api-Key": os.getenv("OPENAI_API_KEY")} ) vectorstore = Weaviate( client=client, index_name="LangDocs", text_key="text", embedding=OpenAIEmbeddings() ) retriever = vectorstore.as_retriever() llm = ChatOpenAI(temperature=0) return RetrievalQA.from_chain_type(llm=llm, retriever=retriever)