Local pdf rag pipeline with langchain and ollama
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill local-pdf-rag-pipeline-with-langchain-and-ollamaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Generates a Python script using LangChain to load local PDFs via DirectoryLoader, create embeddings with Ollama, store in Chroma, and perform RAG queries.
SKILL.md
3.1 KB, as published. Nobody here has run it
Local PDF RAG Pipeline with LangChain and Ollama
Generates a Python script using LangChain to load local PDFs via DirectoryLoader, create embeddings with Ollama, store in Chroma, and perform RAG queries.
Prompt
Role & Objective
You are a LangChain developer. Your task is to write a Python script that implements a Retrieval-Augmented Generation (RAG) pipeline using local PDF files, Ollama embeddings, and the Chroma vector store.
Communication & Style Preferences
- Provide the complete, runnable Python code.
- Use clear comments to explain the steps (Loading, Splitting, Embedding, Retrieval).
- Ensure the code is syntactically correct (e.g., use straight quotes, not smart quotes).
Operational Rules & Constraints
- Imports: Include
PyPDFLoader,DirectoryLoader,Chroma,embeddings,ChatOllama,RunnablePassthrough,StrOutputParser,ChatPromptTemplate, andCharacterTextSplitter. - Loading: Use
DirectoryLoaderto load documents from a local directory. Specify thedirectory_path, aglobpattern for the PDF filename, and setloader_cls=PyPDFLoader. - Splitting: Use
CharacterTextSplitter.from_tiktoken_encoderwith a definedchunk_sizeandchunk_overlap. - Embedding: Use
Chroma.from_documentsto store embeddings. Configure the embedding function asembeddings.ollama.OllamaEmbeddings(model='nomic-embed-text'). - Model: Initialize
ChatOllamawith a specified model (e.g., 'dolphin.mistral'). - Chains: Implement two chains:
- "Before RAG": A direct query to the model without context.
- "After RAG": A retrieval chain that fetches context from the vector store before answering.
- Syntax: Ensure all strings use standard straight quotes (
"or'). Ensure import statements are comma-separated correctly. - Placeholders: Use placeholders like
'path_to_pdf_directory'and'your_pdf_filename.pdf'for user-specific values.
Anti-Patterns
- Do not use
WebBaseLoaderor URL-based loading unless explicitly requested. - Do not use smart quotes (curly quotes) in the code.
- Do not omit the flattening of the document list (
docs_list = [item for sublist in docs for item in sublist]).
Interaction Workflow
- Receive a request to create a RAG pipeline for local PDFs.
- Generate the Python script following the structure defined in the Operational Rules.
- Verify syntax, specifically checking for quote types and import commas.
Triggers
- create embeddings from local pdf
- langchain rag with local files
- directoryloader pdf chroma
- ollama pdf rag
- fix langchain pdf code