From 7dc8d371a62ddc0218282255ed7de92bc0427aee Mon Sep 17 00:00:00 2001 From: ShubhamSaboo Date: Thu, 13 Feb 2025 20:26:35 -0600 Subject: [PATCH] updated local deepseek rag app --- .../deepseek_local_rag_agent/README.md | 13 ++++-------- .../deepseek_rag_agent.py | 21 +++++++++++++------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/rag_tutorials/deepseek_local_rag_agent/README.md b/rag_tutorials/deepseek_local_rag_agent/README.md index e5fa8dc..a056a2c 100644 --- a/rag_tutorials/deepseek_local_rag_agent/README.md +++ b/rag_tutorials/deepseek_local_rag_agent/README.md @@ -6,7 +6,7 @@ A powerful reasoning agent that combines local Deepseek models with RAG capabili - **Dual Operation Modes** - Local Chat Mode: Direct interaction with Deepseek locally - - RAG Mode: Enhanced reasoning with document context and web search integration - llama3.1:8b + - RAG Mode: Enhanced reasoning with document context and web search integration - llama3.2 - **Document Processing** (RAG Mode) - PDF document upload and processing @@ -15,7 +15,6 @@ A powerful reasoning agent that combines local Deepseek models with RAG capabili - Vector storage in Qdrant cloud - **Intelligent Querying** (RAG Mode) - - Query rewriting using Gemini - RAG-based document retrieval - Similarity search with threshold filtering - Automatic fallback to web search @@ -50,14 +49,10 @@ ollama pull deepseek-r1:7b ollama pull snowflake-arctic-embed ollama run llama3.2 +ollama pull llama3.2 ``` -### 2. Google API Key (for RAG Mode) -1. Go to [Google AI Studio](https://aistudio.google.com/apikey) -2. Sign up or log in to your account -3. Create a new API key - -### 3. Qdrant Cloud Setup (for RAG Mode) +### 2. Qdrant Cloud Setup (for RAG Mode) 1. Visit [Qdrant Cloud](https://cloud.qdrant.io/) 2. Create an account or sign in 3. Create a new cluster @@ -65,7 +60,7 @@ ollama run llama3.2 - Qdrant API Key: Found in API Keys section - Qdrant URL: Your cluster URL (format: `https://xxx-xxx.cloud.qdrant.io`) -### 4. Exa AI API Key (Optional) +### 3. Exa AI API Key (Optional) 1. Visit [Exa AI](https://exa.ai) 2. Sign up for an account 3. Generate an API key for web search capabilities diff --git a/rag_tutorials/deepseek_local_rag_agent/deepseek_rag_agent.py b/rag_tutorials/deepseek_local_rag_agent/deepseek_rag_agent.py index bef094f..a630c26 100644 --- a/rag_tutorials/deepseek_local_rag_agent/deepseek_rag_agent.py +++ b/rag_tutorials/deepseek_local_rag_agent/deepseek_rag_agent.py @@ -3,10 +3,8 @@ import tempfile from datetime import datetime from typing import List import streamlit as st -import google.generativeai as genai import bs4 from agno.agent import Agent -from agno.models.google import Gemini from agno.models.ollama import Ollama from langchain_community.document_loaders import PyPDFLoader, WebBaseLoader from langchain.text_splitter import RecursiveCharacterTextSplitter @@ -18,8 +16,14 @@ from agno.tools.exa import ExaTools from agno.embedder.ollama import OllamaEmbedder -class OllamaEmbedderr(Embeddings): +class OllamaEmbedder(Embeddings): def __init__(self, model_name="snowflake-arctic-embed"): + """ + Initialize the OllamaEmbedderr with a specific model. + + Args: + model_name (str): The name of the model to use for embedding. + """ self.embedder = OllamaEmbedder(id=model_name, dimensions=1024) def embed_documents(self, texts: List[str]) -> List[List[float]]: @@ -139,8 +143,13 @@ if st.session_state.use_web_search: # Utility Functions -def init_qdrant(): - """Initialize Qdrant client with configured settings.""" +def init_qdrant() -> QdrantClient | None: + """Initialize Qdrant client with configured settings. + + Returns: + QdrantClient: The initialized Qdrant client if successful. + None: If the initialization fails. + """ if not all([st.session_state.qdrant_api_key, st.session_state.qdrant_url]): return None try: @@ -234,7 +243,7 @@ def create_vector_store(client, texts): vector_store = QdrantVectorStore( client=client, collection_name=COLLECTION_NAME, - embedding=OllamaEmbedderr() + embedding=OllamaEmbedder() ) # Add documents