import os from langchain.chains.summarize import load_summarize_chain from utils import openai_llm from dotenv import load_dotenv from langfuse.callback import CallbackHandler load_dotenv() os.environ["LANGFUSE_PUBLIC_KEY"] = os.getenv("LANGFUSE_PUBLIC_KEY") os.environ["LANGFUSE_SECRET_KEY"] = os.getenv("LANGFUSE_SECRET_KEY") os.environ["LANGFUSE_HOST"] = os.getenv("LANGFUSE_HOST") langfuse_handler = CallbackHandler() def setup_summary_chain(api_key): """Set up a summary chain with a specified LLM.""" llm = openai_llm(api_key=api_key) return load_summarize_chain(llm=llm, chain_type='map_reduce') def summarize_documents(documents, api_key): """Generate summaries for provided documents.""" summary_chain = setup_summary_chain(api_key) return summary_chain.run(documents, callbacks=[langfuse_handler])