Download app.py from cerbero/chatdoc: direct link, hf CLI and curl.
- Browser
- Download file 2.14 kB
-
https://huggingface.co/spaces/cerbero/chatdoc/resolve/main/app.py
- Command line
-
hf download hf://spaces/cerbero/chatdoc/app.py
-
curl -L -o app.py https://huggingface.co/spaces/cerbero/chatdoc/resolve/main/app.py
2.14 kB
| import langchain | |
| langchain.__version__ | |
| from langchain import HuggingFacePipeline | |
| from langchain import PromptTemplate | |
| from langchain import LLMChain | |
| from langchain.document_loaders import OnlinePDFLoader | |
| from langchain.text_splitter import CharacterTextSplitter | |
| from langchain.embeddings import HuggingFaceEmbeddings | |
| from langchain.vectorstores import Chroma | |
| from langchain.chains import ConversationalRetrievalChain | |
| from langchain.agents import load_tools, initialize_agent, AgentType | |
| # OJO! max_length tiene que ser suficiente como para tener el documento (chuck) + el prompt + el system prompt + respuesta generada !!! | |
| llm = HuggingFacePipeline.from_model_id(model_id="OpenAssistant/stablelm-7b-sft-v7-epoch-3", | |
| task="text-generation", model_kwargs={"temperature": 0.0, "max_length": 2048, 'device_map': 'auto'}) | |
| template = """<|prompter|>{question}<|endoftext|><|assistant|>""" | |
| prompt = PromptTemplate(template=template, input_variables=["question"]) | |
| llm_chain = LLMChain(prompt=prompt, llm=llm) | |
| question = "What is the meaning of life?" | |
| llm_chain.run(question) | |
| loader = OnlinePDFLoader("https://arxiv.org/pdf/1911.01547.pdf") | |
| document = loader.load() | |
| len(document[0].page_content) | |
| text_splitter = CharacterTextSplitter(chunk_size=1024, chunk_overlap=64) | |
| # texts = text_splitter.split_text(raw_text) | |
| documents = text_splitter.split_documents(document) | |
| len(documents) | |
| documents[10].page_content | |
| embeddings = HuggingFaceEmbeddings() | |
| query_result = embeddings.embed_query(documents[0].page_content) | |
| vectorstore = Chroma.from_documents(documents, embeddings) | |
| qa = ConversationalRetrievalChain.from_llm(llm, vectorstore.as_retriever(), return_source_documents=True) | |
| chat_history = [] | |
| query = "What is the definition of intelligence?" | |
| result = qa({"question": query, "chat_history": chat_history}) | |
| result["answer"] | |
| result['source_documents'][0].page_content | |
| tools = load_tools( | |
| ["arxiv"], | |
| ) | |
| agent_chain = initialize_agent( | |
| tools, | |
| llm, | |
| agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, | |
| verbose=True, | |
| ) | |
| agent_chain.run( | |
| "What's the paper On the measure of intelligence, by François Chollet, about?", | |
| ) |