Skip to content

A RAG-based question-answering system that processes user queries using local documents. It extracts relevant information to answer questions, falling back to a large language model when local sources are insufficient, ensuring accurate and contextual responses.

Notifications You must be signed in to change notification settings

sahasourav17/IntelliAnswer

Repository files navigation

IntelliAnswer

Goal:

A system that processes user-provided question files and supplementary documents. It extracts questions, answers them using information from the supplementary files when available, and falls back to an LLM for answers when necessary.

Installation

  1. Create a virtual environment (optional but recommended)

    python -m venv llmrag
  2. Install all the dependencies

    pip install -r requirements.txt

If you want to use Ollama with local models then follow this steps:

  1. Download Ollama from here [https://ollama.com/download]

  2. Run ollama after installing

  3. In terminal you need to pull the llama and nomic-embed-text. Although you can use any of the model available in the ollama repository.

    ollama run llama3
    ollama pull nomic-embed-text
  4. Verify your installation

    ollama list
  5. Now run the python file. For instance, you can use the following command to run the langchain_ollama_llama3_rag_for_docx.py script.

    python3 langchain_ollama_llama3_rag_for_docx.py

If you want to run the webapp, you can use the following command. Make sure you have the OPENAI_API_KEY set to your .env file

streamlit run QEAG_webapp.py

Note:

  • Before running the script, you must specify the filepath in the main function.

  • If your docx file is large enough, then try to tweak the chunk_size and chunk_overlap parameters accordingly.

    def split_documents(documents):
        text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=1000)
        chunks = text_splitter.split_documents(documents)
        document = chunks[0]
        print(document.page_content)
        print(document.metadata)
        print(f"Split into {len(chunks)} chunks")
        return chunks

About

A RAG-based question-answering system that processes user queries using local documents. It extracts relevant information to answer questions, falling back to a large language model when local sources are insufficient, ensuring accurate and contextual responses.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages