Download src/llm_utils.py from lenox-ai/prototype: direct link, hf CLI and curl.
- Browser
- Download file 1.74 kB
-
https://huggingface.co/spaces/lenox-ai/prototype/resolve/main/src/llm_utils.py
- Command line
-
hf download hf://spaces/lenox-ai/prototype/src/llm_utils.py
-
curl -L -o llm_utils.py https://huggingface.co/spaces/lenox-ai/prototype/resolve/main/src/llm_utils.py
1.74 kB
| from langchain.chains.llm import LLMChain | |
| from langchain.chat_models import ChatOpenAI | |
| from langchain.docstore.document import Document | |
| import time | |
| from typing import List | |
| from langchain.chains.summarize import load_summarize_chain | |
| async def async_generate_llmchain( | |
| llm: ChatOpenAI, docs: List[Document], llm_kwargs: dict, k: str | |
| ) -> dict: | |
| """Asyncronous LLMChain function. | |
| Args: | |
| llm (ChatOpenAI): Language model to use. | |
| docs (List[Document]): List of documents. | |
| llm_kwargs (dict): Keyword arguments for the LLMChain. | |
| k (str): Key for a dictionary under which the output is returned. | |
| Returns: | |
| dict: Dictionary with the summarization. | |
| """ | |
| print(f"Starting summarization for {k}") | |
| now = time.time() | |
| chain = load_summarize_chain( | |
| llm=llm, | |
| **llm_kwargs, | |
| ) | |
| resp = await chain.arun(docs) | |
| print(f"Time taken for {k}: ", time.time() - now) | |
| return {k: resp} | |
| async def async_generate_summary_chain( | |
| llm: ChatOpenAI, docs: List[Document], summarization_kwargs: dict, k: str | |
| ) -> dict: | |
| """Asyncronous LLMChain function. | |
| Args: | |
| llm (ChatOpenAI): Language model to use. | |
| docs (List[Document]): List of documents. | |
| summarization_kwargs (dict): Keyword arguments for the load_summarize_chain. | |
| k (str): Key for a dictionary under which the output is returned. | |
| Returns: | |
| dict: Dictionary with the summarization. | |
| """ | |
| print(f"Starting summarization for {k}") | |
| now = time.time() | |
| chain = load_summarize_chain( | |
| llm=llm, | |
| **summarization_kwargs, | |
| ) | |
| resp = await chain.arun(docs) | |
| print(f"Time taken for {k}: ", time.time() - now) | |
| return {k: resp} | |